我在读某人的代码。它是关于获取输入数字并将这些数字转换为链接列表。代码的一部分是这样的:
class Node {
int value;
Node next;
Node() {
next = null;
}
}
首先,我们需要创建一个head
节点来指示头部,我们让head
为空 Node head = null
。
我对java的有限经验告诉我head
应该是这里的Node类型对象。那么为什么我们可以使用Node head = null
而无需实例化head
?
我认为至少我应该创建 Node head = new Node()
;然后我们可以使用 Node head = null
;
任何人都可以向我解释一下吗?
答案 0 :(得分:1)
head
应该是这里的Node类型对象
这是可选的。 Java允许head
为Node
对象,或null
,表示head
根本没有引用任何节点。
null
的值在Java中是特殊的。允许它去任何物体可以去的地方。它表示您指定给null
的变量为空。假设程序的其余部分处理空检查,这非常好。
答案 1 :(得分:1)
Node head = null;
此行表明链表中没有商品。这在Java中有效,表示尽管head可以包含Node
对象(或派生类的对象),但它当前是空的。
要将项目添加到列表中,可能会出现一些代码,例如:
public void addItemToLinkedList(int value) {
if (head == null) {
head = new Node();
head.value = value;
} else {
...
}
}
因此,如果没有第一个节点(当head等于null时),则创建head。否则,如果head已经存在,则执行else块,该块将查找列表的末尾并添加另一个Node。