java - Java 链表

标签 java linked-list

这是一个家庭作业问题,但并不是真正要评分的,只是在将来的项目中使用的东西。我在显示列表/节点中的内容时遇到问题。 主要是调用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带参数:不带参数。而且,它不是静态方法——它必须在对象上调用。

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

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

相关文章:

c - 构建并打印一个链表,其中每个节点代表 C 中的一个链表

c++ - C++中的反向双向链表

java - 转换为可运行 Jar 文件时读取 .ini 文件

java - iBatis 参数 - MaximumCheckoutTime

java - 从计算机科学家到软件工程师

c++ - 为什么 stoi/atoi 向我提供编译器错误?

Java ODBC MS-Access Unicode 字符问题

java.io.IOException : Mark has been invalidated when parsing website with jsoup 异常

java - 如何在 java 8 中使用 compareTo 对链表进行排序

swift - 链表中的可选节点