遍历链表



我是链表的新手。在 void main(( 中,我知道 Start 是类Node的对象,因此使用该对象我们调用了节点类的下一个变量,如 Start.next,但我没有得到Start.next.next行它是什么意思

接下来只有一个变量,那么为什么开始调用下一个? 并且程序工作正常。

public class list {
public static void main(String args[]) {
Node Start = new Node(1);
Start.next = new Node(2);
Start.next.next = new Node(3);
Start.next.next.next = new Node(4);
for (Node list = Start; list != null; list = list.next) {
System.out.println(list.data + " ");
}
System.out.println("Null");
}
}
class Node {
int data;
Node next;
Node(int data) {
this.data = data;
}
}

输出

1
2
3
4
Null   
Node Start =new Node(1);
Start.next = new Node(2);

Start是一个Node,它有一个名为next的成员变量,该成员变量也是一个Node。(该Node也有自己的next节点,依此类推。每个Node都有自己的next。 因此,当您说Start.next.next时,您正在访问列表中的下一个节点。(总体上是第 3 个节点,Start节点之后的第二个节点。

Start.next.nextStart中存在的Node next的成员变量。

以下是细分:

  1. Node Start包含Node next.
  2. Node next包含自己的成员变量Node next

等等。

StartNode类的一个实例。Node类包含datanext等成员,其中data是整数,nextNode。因此,我们可以等价地说:

Node Start = new Node();
Node Second = new Node();
Start.next = Second;
Node Third = new Node();
Second.next = Third; /* And this is equivalent to Start.next.next = Third,
because Start.next and Second refer to the same object instance. */

本质上,Start.next 是Node的另一个实例,因此,Start.next引用的对象也将包含一个.next成员。

如果你能这样想,你可以更好地理解它。
考虑Node类是一个拥有一些数据和父亲的人:

class Person {
//some data
Person father;
Person(/*some data*/) {
/*this.(some data) = some data;*/
}
}

儿子是Person,儿子有一些数据和父亲,父亲也是一个人,父亲也有一些数据,还有一个父亲是(祖父(,等等......

相关内容

  • 没有找到相关文章

最新更新