这是一个家庭作业问题,但并不是真正要评分的,只是在将来的项目中使用的东西。我在显示列表/节点中的内容时遇到问题。 主要是调用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/