plist *merge(plist *ah,plist *bh) //合并函数
{
plist *head,*tail,*p=ah,*q=bh,*ptemp;
if(ah==NULL)return bh;
if(bh==NULL)return ah;
tail=p;
if(p->no>q->no)
tail=q;
while(NULL!=p&&NULL!=q)
{
if(p->no<=q->no)
{
ptemp=p;p=p->next;
}
else
{
ptemp=q;q=q->next;
}
tail->next=ptemp;tail=ptemp;
}
if(NULL==p)
{
p=q;
}
ptemp=p;
tail->next=ptemp;
return head;
}
关于两条升序的链表,合并成一条新的升序链表; if函数底下的tail已经指向了q,为什么while里面的函数让tail->next继续指向q
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qq_61536440 2022-03-23 21:05关注
tail是个指针。tail->next=q;表示tail当前指向的节点的next域等于q,
tail = q表示tail这个指针指向了q解决 无用评论 打赏 举报