关于delNode=null赋值这一段代码
来源:2-1 Leetcode中和链表相关的问题
545484sa54
2021-04-27 21:24:03
如图
链表初始数据结构为
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
还有这样一个问题,在创建了虚拟头节点dummy以后为什么不使用虚拟头节点进行遍历,还要再创建一个prev节点来指向dummy节点呢。
相似问题