2011-10-28 90 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 - 谢谢,更新。 –