如何在java的linkedlist实现中用新节点更新头部

lvmkulzt  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(279)

我正在学习用java实现linkedlist。在执行linkedlist.java中的以下代码后,我不理解head是如何用新节点更新的,尽管我们没有更新head。

n.next = node;

请让我理解这个概念。提前谢谢。
节点.java

public class Node {
    int data;
    Node next;  
    }

链接列表.java

public class LinkedList {
Node head;
void insert(int data) {
    Node node = new Node();
    node.data = data;
    node.next = null;
    if(head==null) {
        head = node;        
    }else {
        Node n = head;
        while(n.next!=null) {
          n = n.next;
        }
        n.next = node; //--head is also updating with new nodes--//     
    }
}   
void display() {
    Node n = head;
do {
    System.out.println(n.data);
    n=n.next;
}
while(!(n.next==null));
}   
}

主.java

public class Main {
    public static void main(String[] args) {            
        LinkedList list = new LinkedList();
        list.insert(10);
        list.insert(20);
        list.insert(30);
        list.insert(40);
        list.display();
    }
}
3wabscal

3wabscal1#

head设置为您在列表中创建的第一个节点,并且从不更改。当添加新节点时,循环会转到列表的末尾(找到next==null的“tail”节点),并将新节点设置为其“(tail的)“next”。
头部不会更新,它始终保持对列表第一个元素的相同引用。任何新节点都将添加到列表的末尾。

相关问题