NodePtr merge_lists(NodePtr& one_head,NodePtr& two_head)
{
if(one_head == NULL)
return two_head;
if(two_head == NULL)
return one_head;
NodePtr head = NULL;
if(one_head->data < two_head->data)
{
head = one_head;
one_head = one_head->link;
}
else
{
head = two_head;
two_head = two_head->link;
}
NodePtr current_Ptr = head;
while(one_head !=NULL && two_head !=NULL)
{
if(one_head->data <= two_head->data)
{
current_Ptr->link = one_head;
current_Ptr = one_head;
one_head = one_head->link;
}
else
{
current_Ptr->link = two_head;
current_Ptr = two_head;
two_head = two_head->link;
}
}
if(one_head != NULL)
current_Ptr->link = one_head;
if(two_head != NULL)
current_Ptr->link = two_head;
return head;
}