关于delNode=null赋值这一段代码

关于delNode=null赋值这一段代码

如图http://img1.sycdn.imooc.com//climg/60880fb60850105008260298.jpg

链表初始数据结构为

int[] arr = {7, 1, 7, 7, 7, 7}; 

val为7

在第一次将delNode.next赋值为null后,head的链表结构直接变为了7->null,这里不太能理解,麻烦老师解惑,谢谢老师。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

因为 head 节点也是你要删除的节点,所以在删除 head 的时候,delNode 指向 head,delNode.next = null,就是 head.next = null。所以 head 就变成 7-> null 了。


这就是这个算法最后的结果不能返回 head,而要返回 dummyHead->next 的原因。当 head 是要删除的节点的时候,返回 head 是错误的。


继续加油!:)

提问者 545484sa54 2021-04-27 22:21:55

还有这样一个问题,在创建了虚拟头节点dummy以后为什么不使用虚拟头节点进行遍历,还要再创建一个prev节点来指向dummy节点呢。

  • 提问者 545484sa54 #1

    虚拟头节点的问题理清了,还是麻烦老师帮我解答一下上面的问题。

    2021-04-27 22:29:39
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2602    人
  • 解答问题       1096    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码