httpsdocsgooglecomfiled0BzaeW8pu0MUTnNOaGIxcEM2Uzgeditpli1So

https://docs.google.com/file/d/0B_zaeW8pu0MUTnNOaGIxcEM2Uzg/edit?pli=1

Solution

{

    LIST* current;

    /* Special case for the head end */

    if (*l == NULL || (*l->val >= new_node->val)

    {

        new_node->next = *l;

        *l= new_node;

    }

    else

    {

        /* Locate the node before the point of insertion */

        current = *l;

        while (current->next!=NULL &&

               current->next->val < new_node->val)

        {

            current = current->next;

        }

        new_node->next = current->next;

        current->next = new_node;

    }

}

LIST* lst_merge_sorted(LIST* a, LIST* b)

{

LIST* result = NULL;

  /* Base cases */

  if (a == NULL)

     return(b);

  else if (b==NULL)

     return(a);

  /* Pick either a or b, and recur */

  if (a->val<= b->val)

  {

     result = a;

     result->next = lst_merge_sorted(a->next, b);

  }

  else

  {

     result = b;

     result->next = lst_merge_sorted(a, b->next);

  }

  return(result);

}


Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site