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

来源:2-1 Leetcode中和链表相关的问题

545484sa54

2021-04-27 21:24:03

如图http://img.mukewang.com/climg/60880fb60850105008260298.jpg

链表初始数据结构为

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

val为7

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

写回答

2回答

liuyubobobo

2021-04-28

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


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


继续加油!:)

2

545484sa54

提问者

2021-04-27

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

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

h021-04-27
共1条回复

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2638 学习 · 1091 问题

查看课程