q2380957683
2020-03-15 22:55 阅读 157

关于两条升序的链表,合并成一条新的升序链表; if函数底下的tail已经指向了q,为什么while里面的函数让tail->next继续指向q

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;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

相关推荐