为什么要 delNode.next=null;呢?

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

神奇大樱桃

2019-09-16

while(prev.next!=null){
if(prev.next.val==val) {
ListNode delNode = prev.next;
prev.next=delNode.next;
delNode.next=null;
}else{
prev=prev.next;
}

  }
   prev.next=delNode.next; 已经将待删除的后一项给prev.next了。说明prev.next指向了待删元素的后一个,那为什么要将delNode.next引用指向null呢?为什么delNode这个引用不也一起指向null呢。
写回答

2回答

liuyubobobo

2019-09-17

不写没问题的,课程后续也会有不写的写法。这里只是显示将 delNode 和原链表“脱离”,若果理解 Java 的内存回收机制,这里不写,delNode 最终也会被 GC 正确回收的。


继续加油!:)

0
0

HERTION

2019-09-16

把delNode持有的引用删掉,没人引用他,他也没有引用别人,就会被垃圾回收机制回收了

0
2
神奇大樱桃
我知道在linkedList中,我们没把delNode设成null是因为我们需要返回它的值
2019-09-16
共2条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程