簡體   English   中英

鏈表Java實現的主要內容

[英]What is head in Linked List Java Implementation

我正在閱讀“破解編碼面試”,並且注意到下面的Java鏈表實現代碼。

class Node {
    Node next = null;
    int data;

    public Node (int d){
        data = d;
    }

    void appendToTail(int d){
        Node end = new Node(d);
        Node n = this;
        while(n.next != null){
            n = n.next;
        }
        n.next = end;
    }
}

Node n = this; 非常讓我感到困惑。 我們應該從列表的開頭開始,一直到列表的末尾。 Java中的“ this”通常是指當前實例。 那么,這兩個有什么關系? 我確定我在這里缺少什么。 請幫忙!

每當為Node引用someNode someNode.appendToTail(x) ,它將創建一個數據值為x的新Node ,並將其附加到包含someNode的任何列表的someNode 如果someNode是列表的一部分,則它將成為兩個節點列表的開頭,而新節點為結尾。 如果someNode是較長列表的一部分,則新節點將是該列表的someNode

為此, appendToTail必須找到尾注,即next指針為null的尾注。 它使用this本身開始搜索。 如果它是列表的n.next = end; ,則將跳過該循環,因為nextnull ,並且n.next = end; 分配將具有next = end;的效果next = end; 如果列表中還有更多節點,則while循環將跳過它們,直到找到當前尾部。

暫無
暫無

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

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