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