List Merge( List L1, List L2 )
{
List L;
L=(List)malloc(sizeof(struct Node));
L->Next=NULL;
List p1=L1->Next,p2=L2->Next,p=L;
while(p1&&p2)
{
if(p1->Data<=p2->Data)
{
p->Next=p1;
p=p1;
p1=p1->Next;
L1->Next=p1;
}
else
{
p->Next=p2;
p=p2;
p2=p2->Next;
L2->Next=p2;
}
}
if(p1)
{
p->Next=p1;
L1->Next=NULL;
}
if(p2)
{
p->Next=p2;
L2->Next=NULL;
}
return L;
}
注意点:
第一,带头结点的链表,头结点是没有实际意义的结点,申请头结点的链表:p=(List)malloc(sizeof(struct Node));p->Next=NULL;
第二,要记得更新L1,L2链表。