我正在 leetcode 上解决这个问题,但我一直遇到问题:这是我的代码:
单链表的定义:
class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}
class Solution {
public ListNode swapPairs(ListNode head) {
if(head == null || head.next == null) {
return head;
}
ListNode temp = new ListNode(0);
temp.next = head;
ListNode prev = temp;
while(head != null && head.next != null) {
ListNode firstNode = head;
ListNode secondNode = head.next;
prev.next = secondNode;
firstNode.next = secondNode.next;
secondNode.next = firstNode;
prev = firstNode;
head = firstNode.next;
}
return temp.next;
}
}
它不断显示错误:
java.lang.NoSuchMethodError:'ListNode ListNode.deserialize(java.lang.String)'
在 Deserializer.toListNode(来源未知)
在第 82 行,Driver.main
我以为是因为我也定义了main函数。但不。帮助我理解这一点,我该如何解决这个问题。
期望链表的输出:1->2->3->4 as 2->1->4->3
这是因为您不应该取消注释
ListNode
的定义。它由应用程序的“驱动程序”部分提供给您(其中包含测试您的实现的主函数)。该评论仅用于您的文档。
实际上,
ListNode
类比注释中显示的方法有更多的方法:deserialize
方法就是其中之一,因此您会得到有关缺少方法的错误。
评论仅向您显示与您相关的
ListNode
的那些方法。类的其余定义纯粹是为了 LeetCode 的使用。