java - 有关 Java 节点的基础知识

标签 java data-structures nodes

我对节点感到非常困惑,每个节点都有一个 item 数据类型和一个名为 next 的节点数据类型。当我们有 3 个节点,我们想要删除中间的 exNodes xyz 。使用 x.next=yy.next=zz.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/

相关文章:

c++ - R* 树重叠计算

mysql - 根据第二个表中的值进行选择

java - 如何选择 Selenium 中的特定元素?

javascript - 对象及其键的数组值的所有组合

c++ - 使用邻接表创建图

java - 交换 LinkedBag 中的三个元素。即ABC==BCA

C:避免链表中的垃圾值

java - JTextField:当文本字段已满/自动跳过/自动制表符时聚焦下一个组件

java - 当条件应该为 true 时,if-else 语句的计算结果不为 true

java - Derby 的另一个实例可能已经使用嵌入式数据库启动了数据库