这是一个作业问题,但不是真正要评分的问题,只是将来项目中要使用的问题。我在显示列表/节点中的内容时遇到问题。
主要是在调用displayList时出现错误。

合并将列表合并为一个新列表,其中包括所有列表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

最佳答案

第一个错误是与ListNode temp = head;行有关:未声明head

第二个错误是因为您尝试使用参数调用displayList:它不带参数。而且,它不是静态方法-必须在对象上调用它。

第三个错误是因为您试图在类displayList的对象上调用ListNode,而displayList实际上属于类LinkedListHomework

关于java - 链表Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7924720/

10-11 09:23