List Merge(List L1,List L2){
PtrToNode r,pa=L1->Next,pb=L2->Next;//
L1->Next=NULL;L2->Next=NULL;
List L=(List)malloc(sizeof(PtrToNode));//生成链表头节点
r=L;//使r为L的尾指针;
L->Next=NULL;//初始化头节点
while(pa&&pb){
if(pa->Data<=pb->Data){//L1 L2 为递增有序的链表所以我们通过从头开始由小到大插入L中
L1->Next=pa->Next;//通过L1节点暂存pa只想的下一个节点,当while结束时L1指向的节点为
// NULL
r->Next=pa;
r=pa;
pa=L1->Next;//要求从小到大所以采用尾插法
}else{
L1->Next=pb->Next;
r->Next=pb;
r=pb;
pb=L1->Next;
}
}
if(pa){
pb=pa;
}//统一操作下面通过一个while循环就可以解决未插入的节点
while(pb){
L1->Next=pb->Next;
r->Next=pb;
r=pb;
pb=L1->Next;
}
// while(pa){
// r->Next=pa;
// pa=pa->Next;
// r=r->Next;
// r->Next=NULL;
// }
// while(pb){
// r->Next=pb;
// pb=pb->Next;
// r=r->Next;
// r->Next=NULL;
// }
return L;
}