题目描述:
给定两个有序链表,将他们合并为一个新的有序链表。
Node* Merge(Node *head1, Node *head2)
{
if(head1 == NULL)
return head2;
if(head2 == NULL)
return head1;
Node *head = NULL;
if(head1->data < head2->data)
head = head1;
else
head = head2;
while(head1 != NULL && head2 != NULL)
{
if(head1->data < head2->data)
{
Node *tmp = head1->next;
while(tmp != NULL && tmp->data < head2->data)
{
head1 = tmp;
tmp = tmp->next;
}
head1->next = head2;
head1 = tmp;
}
else
{
Node *tmp = head2->next;
while(tmp != NULL && tmp->data < head1->data)
{
head2 = tmp;
tmp = tmp->next;
}
head2->next = head1;
head1 = tmp;
}
}
return head;
}