【发布时间】:2021-05-05 03:31:56
【问题描述】:
我正在阅读《Crashing the Coding Interview》一书中的代码,当他们在第 93 页删除一个节点时,这是他们使用的代码的 sn-p:
Node deleteNode(Node head, int d){
while (n.next != null) {
if (n.next.data == d){
n.next == n.next.next;
return head;
}
return head;
}
}
我不明白的是,如果前一个 n.next 节点仍然有指向它之后的节点的链接,为什么这会删除前一个 n.next 节点?我附上了帮助解释的插图。
提前致谢!
【问题讨论】:
-
b不再被任何人引用,Java 对不再被引用的对象进行自动垃圾回收。所以b将被丢弃,因为没有人链接它。因此,删除链接就足够了。
标签: java data-structures linked-list nodes singly-linked-list