两个有序链表序列的合并 (15分)
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链表。