题目:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
单向链表合并比较简单,但是想通过PTA的测试还是要注意审题的。
注意点1:
规定了原链表和返回的链表都有头节点。
注意点2:
输出样例除了要求输出的L正确,原来的L1,L2都要输出NULL。(就是这一点不注意导致一直卡着没AC)并且空链表也是要有头结点的,让L1,L2本身值为NULL是不行的,那样L1,L2就不再是链表了。
List Merge( List L1, List L2 )
{
//List L;
//List Temp = L;
List L, Temp, p1, p2;
L = (List)malloc(sizeof(struct Node));
Temp = L;
p1=L1->Next;
p2=L2->Next;
while(p1!=NULL && p2!=NULL)
{
if(p1->Data <= p2->Data){
Temp->Next = p1;
p1 = p1->Next;
Temp = Temp->Next;
}
else{
Temp->Next = p2;
p2 = p2->Next;
Temp = Temp->Next;
}
}
if(p1==NULL)Temp->Next = p2;
if(p2==NULL)Temp->Next = p1;
L1->Next=NULL;
L2
版权声明:本文为chengda321原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。