Java 链接列表中的节点类 private值; 私有节点下一步//这个 公共节点(E newVal,Node newNext){ 值=newVal; next=newNext;//还有这个 }

Java 链接列表中的节点类 private值; 私有节点下一步//这个 公共节点(E newVal,Node newNext){ 值=newVal; next=newNext;//还有这个 },java,dts,Java,Dts,我真的很难理解/想象构造函数是如何通过“next=newNext”引用下一个节点的,以及为什么变量类型必须与类名相同 想象一组字母(a,B,C,D)。您希望将它们排列为一个列表。这样做的一种方法是:首先是A,然后你告诉A那个字母是B(这是一个字母)。然后你告诉B,字母后面是C,等等。你在这里做的是把字母连接在一起 将这个概念应用到你的案例中:假设你有一堆节点。节点的值类型为E(E value),但为了将节点排列为列表,必须告诉每个节点它后面的节点 因此,在构造节点时,必须传入一个E newVal

我真的很难理解/想象构造函数是如何通过“
next=newNext
”引用下一个节点的,以及为什么变量类型必须与类名相同

想象一组字母(a,B,C,D)。您希望将它们排列为一个列表。这样做的一种方法是:首先是A,然后你告诉A那个字母是B(这是一个字母)。然后你告诉B,字母后面是C,等等。你在这里做的是把字母连接在一起

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


因此,在构造节点时,必须传入一个
E newVal
和一个
节点newNext
,但请记住,在这种情况下,节点是通过E参数化的。然后,传入的节点也必须通过E参数化,因此传入
节点newNext

next=newNext
只将传递到构造函数的内容分配给节点的
next
指针。至于为什么
next
属于
Node
类型,应该很直观:一个节点指向另一个节点。
private E  value;
private Node <E> next; //this one

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

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

}