鱼C论坛

 找回密码
 立即注册
查看: 3204|回复: 5

在单链表的起始位置插入一个节点。求解释这样为什么行不通。

[复制链接]
发表于 2014-8-19 09:03:25 | 显示全部楼层
程序的根本错误就是修改局部变量。这个函数没有返回值,能和外界联系的只有head头指针所指向的内存。
所以,当你往中间和屁股插的时候会有反应,而往头上插的时候就不起作用了。因为你外界和这个链表唯一的联系就是head。而且head还是单向,只能往下。当利用head查询时,自然查不到头部以上的存在。

说这么一堆你可能会产生新的问题。head没变?对head没变。因为你改的head一直都是局部变量head。你需要改变的是调用该函数时的参数head。

不知道你明白没。要想彻底理解,还必须知道为什么人家原来用的是二级指针。这是原版用来解决保存head地址的方法。如果按照你这样做的方法的话:
解决方案1:设定一个全局变量head用来保存头节点。
解决方案2:添加该函数的返回值,用来返回head头节点。

以上推荐使用解决方案2,这种方法是常用的,而且方便简洁+。。。

语文不及格,希望你能意会。。。。

评分

参与人数 1鱼币 +3 收起 理由
川本姨夫 + 3 说得对

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-4 08:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表