q2380957683 2020-03-15 22:55 采纳率: 0%
浏览 171

关于两条升序的链表,合并成一条新的升序链表; 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;
}

  • 写回答

1条回答 默认 最新

  • qq_61536440 2022-03-23 21:05
    关注

    tail是个指针。tail->next=q;表示tail当前指向的节点的next域等于q,
    tail = q表示tail这个指针指向了q

    评论

报告相同问题?

悬赏问题

  • ¥20 蓝牙耳机怎么查看日志
  • ¥15 R语言 拟时序分析降维图如何减少分支
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统