簡體   English   中英

在 Java 的 Linkedlist 實現中,head 如何更新新節點

[英]How head is updating with new nodes in Linkedlist implementation in Java

我正在學習 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();
    }
}

Head 設置為您在列表中創建的第一個節點,並且永遠不會更改。 添加新節點時,循環轉到列表的末尾(找到 next == null 的“尾”節點)並將新節點設置為其(尾的)“下一個”。

頭部沒有更新,它始終保持對列表第一個元素的相同引用。 任何新節點都會添加到列表的末尾。

當然,您可以保留對尾節點的引用並節省一些時間循環遍歷列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM