Class 链表中的下一个对象是如何工作的?它如何使另一个类对象指向下一个地址?

Class 链表中的下一个对象是如何工作的?它如何使另一个类对象指向下一个地址?,class,object,pointers,linked-list,iterator,Class,Object,Pointers,Linked List,Iterator,例如,如果我正在创建类节点的新对象newnode,它如何使用。next查找列表的下一个地址?在您的示例中,codenext只是null。实际上,没有必要显式执行newnode.next=null,因为它已在节点中初始化为null 当您将另一个新节点指定给所创建节点的下一个属性时,它会变得更有趣: class Node { public int data; public Node next; public Node(int idata) { dat

例如,如果我正在创建类节点的新对象newnode,它如何使用。next查找列表的下一个地址?

在您的示例中,code
next
只是
null
。实际上,没有必要显式执行
newnode.next=null,因为它已在
节点中初始化为
null

当您将另一个新节点指定给所创建节点的
下一个
属性时,它会变得更有趣:

class Node
{
    public int data;
    public Node next;
    
    public Node(int idata) {
        data = idata;
        next = null;
    }
}

Node newnode = new Node(val);
newnode.next = null;
在Java中,对象是通过引用访问的
newnode
就是这样一个引用,而
newnode.next
也是这样一个引用。两者都是对
节点
实例的引用(如果不是
null

我们可以进一步扩展链接列表:

Node newnode = new Node(1);
newnode.next = new Node(2);
当您意识到
next
是一个可以像任何变量一样保存值的属性时,它就真的没有什么魔力了

例如,您还可以首先创建断开连接的节点实例,并且仅在创建后将它们链接在一起:

newnode.next.next = new Node(3);
newnode.next.next.next = new Node(4);

我还有一个疑问,比如在你的例子中,如果d是我们添加的最后一个引用,它会自动指向null吗?或者我们必须显式地写入d.next=null?调用
new Node()
将在
节点的构造函数中执行代码,并且
next
被设置为
null
。因此,尾部节点不需要额外的操作。
Node a = new Node(1);
Node b = new Node(2);
Node c = new Node(3);
Node d = new Node(4);

a.next = b;
b.next = c;
c.next = d;