遞歸實現
Node* Merge(Node *head1,Node *head2)
{
if (head1==NULL)
{
return head2;
}
if (head2==NULL)
{
return head1;
}
if (head1->data<head2->data)
{
head=head1;
head->next=Merge(head1->next,head2);
}
else
{
head=head2;
head->next=Merge(head1,head2->next);
}
}
return head;
非遞歸實現
Node* Merge(Node *head1,Node *head2)
{
Node *pa, *pb, *pc;
pa = head1->next;
pb = head2->next;
pc =pa;
while(pa && pb){
if(pa->data <= pb->data)
{
pc->next = pa;
pc = pc->next;
pa = pa->next;
}
else{
pc->next = pb;
pc = pc->next;
pb = pb->next;
}
}
pc->next = pa? pa:pb;
free(head2);
return pc;
}