2011-10-28 206 views
0

這是一個家庭作業問題,但不是真正的評分,只是在未來的項目中使用的東西。我在顯示列表/節點中顯示的內容時遇到問題。 主要是我調用displayList時出錯。鏈接列表Java

合併將列表合併爲一個包含所有列表1和2項目的新列表。

聯盟僅包括每一個從列表1和2

交叉口僅包括從列表1和2的重複,而不是從同一列表複製。

注意在合併方法中,註釋形式的代碼只是我認爲的當前形式的替代形式。

//Kevin Clement 
//Homework 2 

    class LinkedListHomework 
    { 
     public static ListNode Merge(ListNode List1, ListNode List2) 
     { 
     ListNode head, tail; 
     head = tail = new ListNode("Hi1"); 

     while(List1 != null && List2 != null) 
     { 
      if(List1.getItem().toString().compareTo(List2.getItem().toString()) < 0) 
      { 
       tail.setNext(new ListNode(List1.getItem())); 
       List1 = List1.getNext(); 
      } 
      else 
      { 
       tail.setNext(new ListNode(List2.getItem())); 
       List2 = List2.getNext(); 
      } 
      tail = tail.getNext(); 
     } 

     // while(List1 != null) 
     // { 
     // tail.setNext(new ListNode(List1.getItem())); 
     // tail = tail.getNext(); 
     // List1 = List1.getNext(); 
     // } 
     // 
     // while(List2 != null) 
     // { 
     // tail.setNext(new ListNode(List2.getItem())); 
     // tail = tail.getNext(); 
     // List2 = List2.getNext(); 
     // } 
     return head.getNext(); 


     } 




    // public static ListNode Union(ListNode List1, ListNode List2) 
    // { 
    // 
    // 
    // 
    // } 

    // // public static ListNode Intersection(ListNode List1, ListNode YList2) 
    // { 
    // 
    // } 

     public void displayList() 
     { 
     ListNode temp = head; 
     System.out.print("head"); 
     while(temp != null) 
     { 
      System.out.print("--> " + temp.getItem()); 
      temp = temp.getNext(); 
     } 
     System.out.print("\n\n"); 
     } 


     public static void main(String args[]) 
     { 

     ListNode A = new ListNode("Adam", new ListNode("Andrew", new ListNode("Kyle", new ListNode("Luc", new ListNode("Michael", new ListNode("Tony")))))); 
     ListNode B = new ListNode("Adam", new ListNode("Fallon", new ListNode("Jim", new ListNode("Kyle", new ListNode("Nina", new ListNode("Shea", new ListNode("Tony"))))))); 

     displayList(A); 
     A.displayList(); 




     } 

    } 

好的,這裏是我的錯誤,我覺得複製它們會比我更有幫助,比我試圖解釋什麼是錯的。

LinkedListHomework.java:61: cannot find symbol 
symbol : variable head 
location: class LinkedListHomework 
     ListNode temp = head; 
         ^ 
LinkedListHomework.java:78: displayList() in LinkedListHomework cannot be applied to (ListNode) 
     displayList(A); 
     ^ 
LinkedListHomework.java:79: cannot find symbol 
symbol : method displayList() 
location: class ListNode 
      A.displayList(); 
      ^ 
3 errors 
+2

格式化,格式化,格式化。它確實付出了代價(例如,在此評論之後,我將留下這個問題,因爲如果*你*不顯示傲慢......對我來說不值得;-) – 2011-10-28 03:09:53

+0

@pst說什麼。如果你想忽略格式化準則,你最好是足夠的一個壞蛋,不需要尋求幫助。 – ObscureRobot

+2

所以你的具體問題是什麼,除了「爲我做嗎?」 – MeBigFatGuy

回答

1

第一個錯誤是與線ListNode temp = head;head尚未聲明。

第二個錯誤是因爲你試圖用一個參數調用displayList:它不帶任何參數。此外,它不是一個靜態方法 - 它必須在對象上調用。

第三個錯誤是因爲您試圖對類ListNode的對象調用displayList,而displayList實際上屬於類LinkedListHomework

+0

並嘗試從靜態方法調用實例方法。 –

+0

@DaveNewton - 謝謝,更新。 –