链表中根据索引删除的问题
来源:4-5 从链表中删除元素
慕雪9224395
2018-04-24
Node retNode = prev.next;
prev.next = retNode.next;
retNode.next = null;
老师,最后一行代码是不是有问题,我觉得应该是retNode = null;
因为retNode是要删除的那个节点,所以是retNode = null,而不是把它的next节点设为null
不知道是不是我哪里理解错了
写回答
1回答
-
retNode是要删除的节点,现在这个节点的next还连接着原链表,所以在最后一行将retNode的next指向null,即和原链表脱离关系。请再看一下这一小节2:30处的动画内容,这里这个retNode就是PPT中的delNode。
在脱离关系后,我们不需要手动给retNode设置为空。retNode本身是这个函数中创建的临时变量,函数生命周期结束后,这个变量的生存周期也结束了。至于他所指向的空间,由于不在和其他内存空间有任何关联,会由Java的垃圾回收自动处理:)
112018-04-24
相似问题