链表中的节点 class

Node class in a Linked List

private E  value;
private Node <E> next; //this one

public Node( E newVal,Node <E> newNext) {

    value = newVal;
    next = newNext; //and this one

}

我真的很困惑 understand/visualize 构造函数如何通过“next = newNext”引用下一个节点,以及为什么变量类型必须与 class 名称相同。

想象一组字母 (A,B,C,D)。你想将它们排列成一个列表。这样做的一种方法如下:首先是 A,然后告诉 A 那个字母是 B(这是一个字母)。然后你告诉 B 它后面的字母是 C,等等。你在这里所做的是 字母链接在一起。

将该概念应用于您的案例:假设您有一堆节点。一个 Node 有一个类型 E (E value) 的值,但是为了将 Nodes 排列成一个列表,你必须告诉每个 Node 它后面的 Node。

因此在构建节点时,您必须传入一个 E newVal 和一个 Node newNext,但请记住,在您的情况下,节点是通过 E 参数化的。您传入的节点也必须是在 E 上参数化,因此你传入 Node<E> newNext