请稍等 ...
×

采纳答案成功!

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

链表中根据索引删除的问题

Node retNode = prev.next;

prev.next = retNode.next;

retNode.next = null;

老师,最后一行代码是不是有问题,我觉得应该是retNode = null;
因为retNode是要删除的那个节点,所以是retNode = null,而不是把它的next节点设为null
不知道是不是我哪里理解错了


正在回答

1回答

liuyubobobo 2018-04-24 15:33:07

retNode是要删除的节点,现在这个节点的next还连接着原链表,所以在最后一行将retNode的next指向null,即和原链表脱离关系。请再看一下这一小节2:30处的动画内容,这里这个retNode就是PPT中的delNode。


在脱离关系后,我们不需要手动给retNode设置为空。retNode本身是这个函数中创建的临时变量,函数生命周期结束后,这个变量的生存周期也结束了。至于他所指向的空间,由于不在和其他内存空间有任何关联,会由Java的垃圾回收自动处理:)

1 回复 有任何疑惑可以回复我~
  • 提问者 慕雪9224395 #1
    非常感谢!明白了
    回复 有任何疑惑可以回复我~ 2018-04-24 16:42:53
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信