c语言链表问题。画横线的地方,为什么q=p啊?

img


c语言链表问题。画横线的地方,为什么q=p啊?看不懂,求各位帮忙解答。

p是新创建的节点
q是链表结束的节点
创建并挂上以后让q=p,也就是新的链表结束节点是新挂上的p

这是链表的尾插法。q表示尾节点,p为新增节点。每个新增加点链接完成后,将成为新的尾节点,所以q=p

根据题目上下文使用链表的尾插法来插入节点。也就是说每次新增节点都作为尾节点来连接到链表尾部, 可以看到malloc新增一个节点p,由p的next指针指向q,那么q就作为了链表尾节点,为了下次循环继续插入,所以q指针要后移,所以需要q=p

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^