//use recrusion to merge two ordered linked lists into a ordered linked lists
ListNode * Merge(ListNode *ahead, ListNode *bhead)
{
if(ahead == NULL)
return bhead;
if(bhead == NULL)
return ahead;
//each recrusion inserts a new node into the linked lists in the previous recrusion
ListNode *head;
if(ahead->data < bhead->data)
{
head = ahead;
head->next = Merge(ahead-next, bhead);
}
else
{
head = bhead;
head-> = Merge(ahead, bhead->next);
}
return head;
}