在代码中,节点类为Node next
。我不明白它到底在做什么。是否正在创建一个名为next的对象。当使用nodeA.next = nodeB
时,是否有存储的值。
我正在尝试学习LinkedList,但我无法确切了解发生了什么。
class Node{
int data ;
Node next;
Node(int data){
this.data = data ;
}
}
Node nodeA = new Node(6);
Node nodeB = new Node(3);
Node nodeC = new Node(2);
nodeA.next = nodeB;
nodeB.next = nodeC;
答案 0 :(得分:4)
让我们分解代码并解释各部分:
class Node {
}
这是创建新类的语法。该类名为“节点”。
int data;
这定义了一个实例变量。每个Node类型的实例都应具有一个名为int类型的数据的变量。
Node next;
这定义了另一个实例变量。接下来称为它,它包含对Node的引用。
Node(int data){
this.data = data ;
}
这是所谓的构造函数。它接受一个参数数据,然后将其存储在实例变量数据中。 (实例变量用“ this。”引用,因为参数数据隐藏了具有相同名称的实例变量。)
那是班级本身。因此,现在我们来看一下它的用法(在类/函数外部没有意义。此类代码应成为函数的一部分,例如在主函数内部):
Node nodeA = new Node(6);
Node nodeB = new Node(3);
Node nodeC = new Node(2);
这将创建3个类节点的实例,并将其存储在nodeA,nodeB和nodeC变量中。
nodeA.next = nodeB;
nodeB.next = nodeC;
在这里,我们设置nodeA和nodeB的下一个实例变量,并分配nodeB和nodeC。
这给了我们一个所谓的链表。列表中的一个元素可以指向另一个元素(或者当其中没有元素引用时,默认情况下为null。
这有助于理解代码吗?如果不是:您到底在哪里理解代码有困难?