代码以正确的输出在leetcode操场上编译并运行,但是在尝试运行代码后在编辑器中出现以下错误。
java.lang.NoSuchMethodError:
ListNode.deserialize(Ljava/lang/String;)LListNode;
at __Deserializer__.toListNode(Unknown Source)
at line 92, __Driver__.main
import java.lang.*;
import java.io.*;
import java.util.*;
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode head = null;
StringBuilder inputOne = new StringBuilder();
StringBuilder inputTwo = new StringBuilder();
String listNodeOne = "";
String listNodeTwo = "";
int listNodeOneResult;
int listNodeTwoResult;
int total;
while(l1.next != null){
listNodeOne += Integer.toString(l1.val);
l1 = l1.next;
if(l1.next == null){
listNodeOne += Integer.toString(l1.val);
}
}
inputOne.append(listNodeOne);
listNodeOne = inputOne.reverse().toString();
listNodeOneResult = Integer.parseInt(listNodeOne);
while(l2.next != null){
listNodeTwo += Integer.toString(l1.val);
l2 = l2.next;
if(l2.next == null){
listNodeOne += Integer.toString(l2.val);
}
}
inputTwo.append(listNodeTwo);
listNodeTwo = inputTwo.reverse().toString();
listNodeTwoResult = Integer.parseInt(listNodeTwo);
total = listNodeOneResult + listNodeTwoResult;
while(total > 0){
if(head == null){
head = new ListNode(total%10);
} else {
ListNode current = head;
while(current.next != null){
current = current.next;
}
current.next = new ListNode(total%10);
}
total = total / 10;
}
return head;
}
}
我试图将驱动程序添加到问题中,但这也不起作用。在leetcode playgound和其他2个IDE中运行时,我得到了预期的输出。任何帮助将不胜感激,谢谢。
以下是我要解决的问题的链接: https://leetcode.com/problems/add-two-numbers/
要复制的步骤: 1.将代码从第一个import语句开始复制到最后一个括号。 2.粘贴到问题编辑器中。 3.单击“运行代码”,您将注意到错误 4.接下来单击“游乐场调试” 5.单击“运行代码”,您会注意到它会打印预期的输出
答案 0 :(得分:0)
我在IDE和leetcode中运行了您的代码。我在两个地方都遇到了相同的错误-行NumberFormatException
:
listNodeTwoResult = Integer.parseInt(listNodeTwo);
listNodeTwo
的值是一个空字符串""
,显然不是整数,因此无法解析。您应该调试并修复此问题,然后从那里进行。
答案 1 :(得分:0)
做完一些研究后,我意识到我从包裹listnode类的问题中删除了评论,并且假定它可以用作参考,并且它不会被注释掉,所以会引起问题。谢谢大家的帮助。