链表中指针的问题 ,新定义指针对链表操作与直接对链表操作区别,代码如下?
代码1
List Merge( List L1, List L2 )
{
List L,q;
L =malloc(sizeof(struct Node));
q =L;
L1=L1->Next;
L2=L2->Next;
while(L1&&L2)
{
if(L1->Data<L2->Data)
{
q->Next=L1;
q =L1;
L1=L1->Next;
}
else
{
q->Next=L2;
q =L2;
L2=L2->Next;
}
}
q->Next =L1?L1:L2;
L1->Next=NULL;
L2->Next=NULL;
return L;
}
代码2
List Merge( List L1, List L2 )
{
List L;
L=malloc(sizeof(struct Node));
List p;//用P做游标遍历链表
p=L;
List p1=L1->Next;//头插法
List p2=L2->Next;
while(p1&&p2)
{
if(p1->Data<p2->Data)
{
p->Next=p1;
p=p1;
p1=p1->Next;
}
else
{
p->Next=p2;
p=p2;
p2=p2->Next;
}
}
p->Next=p1?p1:p2;
L1->Next=NULL;//为了输出
L2->Next=NULL;
return L;
}//代码2用p1和p代替L1和L2,代码直接对L1,L2为什么不对