请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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呢。

正在回答 回答被采纳积分+3

2回答

liuyubobobo 2019-09-17 01:12:03

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


继续加油!:)

0 回复 有任何疑惑可以回复我~
HERTION 2019-09-16 20:11:48

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

0 回复 有任何疑惑可以回复我~
  • 提问者 神奇大樱桃 #1
    那为什么只把delNODE中的next引用删了,delNODE这个引用呢?
    回复 有任何疑惑可以回复我~ 2019-09-16 20:12:56
  • 提问者 神奇大樱桃 #2
    我知道在linkedList中,我们没把delNode设成null是因为我们需要返回它的值
    回复 有任何疑惑可以回复我~ 2019-09-16 20:40:39
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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