2016-08-11 12 views
-1

能否請您描述它的使用下面的代碼和它是如何工作。是否有必要使用靜態嵌套類來創建一個節點鏈表

class LinkedList 
{ 
    Node head; // head of list 
    static class Node { 
     int data; 
     Node next; 
     Node(int d) { data = d; next=null; } // Constructor 
    } 

    public static void main(String[] args) 
    { 
     LinkedList llist = new LinkedList(); 

     llist.head = new Node(1); 
     Node second = new Node(2); 
     Node third = new Node(3); 

     llist.head.next = second; // Link first node with the second node 
     second.next = third; // Link second node with the third node 
    } 
} 
+1

不一定 – JavaHopper

回答

0

儘管這絕對是一個好主意,但並不是必需的。

您可以使用一個頂級類的鏈表的節點,而不是一個嵌套的一個。

您也可以使用非靜態類,但您必須在您的LinkedList類上提供工廠方法以創建新節點。結果也會有點浪費,因爲每個節點都會隱式引用列表。

請注意,您的代碼編譯的原因是您的main位於LinkedList類中。因此,它可以創建新的節點,而無需使用其外部類的名稱來限定Node。如果你是移動main一些其他類,你將不得不使用此語法:

LinkedList.Node second = new LinkedList.Node(2); 
+0

但是你可以讓我知道爲什麼節點頭已經嵌套類的外側。 –

+0

@PiyushMishra因爲它是外部類的成員,而不是嵌套類的成員。 – dasblinkenlight

相關問題