我对节点感到非常困惑,每个节点都有一个 item
数据类型和一个名为 next
的节点数据类型。当我们有 3 个节点,我们想要删除中间的 ex
、Nodes x
、y
、z
。使用 x.next=y
、y.next=z
和 z.next=null
。这段代码有什么作用?
Node y=x.next;
x.next=y.next;
我知道它会删除一个节点,但是如何删除呢?在我看来,Node y=x.next
生成 y.next=y
但我们如何删除它呢?因为 x.next=y.next
应该再次显示 y
节点。提前感谢您的回答!
最佳答案
将 next
属性视为一种指针(尽管 Java 中的实际术语是引用)。
让我们将每个节点视为一个框,其中包含指向另一个框的 next
引用。
初始情况是:
------- ------- -------
| x | | y | | z |
| next---------> | next------------>| next----> null
------+ ------+ ------+
现在,当您编写 x.next=y.next
时,您会得到:
------- ------- -------
| x | | y | | z |
| next-----+ | next-------+---->| next----> null
------+ | ------+ | ------+
+------------------+
所以节点 x 指向节点 z。节点 y 没有被删除,但您无法从 x 到达它,也无法从 z 到达它。因此您可以说它已从列表中删除。
关于java - 有关 Java 节点的基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47136514/