浅谈单向链表尾部添加节点的一种错误写法(c语言)

浅谈单向链表尾部添加节点的一种错误写法(c语言),第1张

浅谈单向链表尾部添加节点的一种错误写法(c语言)

第一次写这个程序时,我在增加节点的位置是这么写的

while(pr!=NULL)
        {
        pr = pr->next;
        }
        pr = p;//p为申请好的一块结构体内存,pr最初等于head(头指针)

之后编译运行后,并没有添加成功新的节点。

看了标准答案后发现书上是这么写的。

while(pr->next !=NULL)
        {
            pr = pr->next;
        }
        pr->next = p;

看了之后感觉我写的和书上其实没什么区别啊,百思不得其解。

怀揣着疑问我回到了宿舍,迫不及待地向几个舍友求教。

不过我这个错误的确很有迷惑性,大家都有点蒙住了。。。

最终舍弃了午睡时间,想啊想,舍友hj终于明白了我错在了哪。

错误就在于,不可以使用

pr != NULL

 这个条件来判断,因为如果用这个条件判断,循环结束后,pr的值就是为空,这时候它的确赋上了next的值,但因为next为空,你是无法通过给pr接上一个节点来间接给这个next接上节点的!

(END)

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5594122.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存