我有一个关于使用LeetCode的链表添加两个数字的问题。下面是问题本身,我面临的问题,以及我的代码。
给您两个非空链表,表示两个非负整数。数字按相反顺序存储,每个节点包含一个数字。将这两个数字相加,并将其作为链表返回。
您可以假设这两个数字不包含任何前导零,除了数字0本身。
实例
输入:(2-
问题是它打印出:
Error:
A: 7
B: 7
C: 7
A: 10
B: 0
Exception in thread "main" java.lang.NullPointerException
at Solution.addTwoNumbers(MainClass.java:61)
at MainClass.main(MainClass.java:123)
当结果出现时,它停止。val为0并调用NullPointerException。我不太理解这一部分,因为我认为在Java中,值0与NullPointerException不同。有人能帮我吗?非常感谢。
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode result = new ListNode(0);
int up = 0;
ListNode num1 = l1, num2 = l2;
while (num1 != null || num2 != null){
int sum = 0;
int prevUp = 0;
if (num1 != null && num2 == null){
sum = num1.val + up;
if (sum >= 10){
up = 1;
sum = sum - 10;
}
num1 = num1.next;
result.val = sum;
result = result.next;
}
else if (num2 != null && num1 == null){
sum = num2.val + up;
if (sum >= 10){
up = 1;
sum = sum - 10;
}
num2 = num2.next;
result.val = sum;
result = result.next;
}
else{
sum = num1.val + num2.val;
System.out.println("A: "+ sum);
if (sum >= 10){
prevUp = up;
up = 1;
sum = sum - 10;
}
System.out.println("B: " + sum);
num1 = num1.next;
num2 = num2.next;
result.val = sum + prevUp;
System.out.println("C: " + result.val);
result = result.next;
}
}
return result;
}
在这里,您可以使用引用变量来遍历LinkedList
ListNode result = new ListNode(0);
ListNode p = result;
它给出NullPointerExcture的原因是您只定义了一个节点的ResultList。
当您找到结果时,更喜欢向其添加新节点。下一步==null
由于result=result的原因,它正在引发空指针异常。接下来,而result只有一个节点,您已经初始化为result=newlistnode(0);
问题:给您两个非空链表,表示两个非负整数。数字按相反顺序存储,每个节点包含一个数字。将这两个数字相加,并将其作为链表返回。您可以假设这两个数字不包含任何前导零,除了0本身** 示例:工作测试用例如下:-输入:(2)- 我的解决方案不适用于以下测试用例: 输入: 单链表的定义: 这就是我的解决办法
2.Add Two Numbers [M] 题目: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbe
问题: 给定两个非空链表,表示两个非负整数。数字以相反的顺序存储,每个节点包含一个数字。将这两个数字相加,并以链表形式返回。 您可以假设这两个数字不包含任何前导零,除了数字0本身。 例子: 建议的解决办法: 产出:[7,0,8]; 为什么以下更改会输出[]列表。 任何建议都会有帮助。
问题内容: 我正在尝试在python中添加两个分数 如果输入1/4 + 1/4,我期望得到1/2结果 我用加法建立了一个分数类 但是我得到的输出是2,4,实际上是1/2,只是没有简化。我该如何解决这个问题? 问题答案: 简化分数的一般方法是找到分子和分母的最大公约数,然后将两者除以
null
问题内容: 我有两次弦乐时间 有没有简单的方法可以将这两个时间相加并获得一个新的时间 呢? 我想在客户端执行此操作,因此,如果可以避免使用任何日期数据库 问题答案: 请记住,您可以将小时/分钟/秒的整数值转换为单个整数,如下所示: 并转换回: 或者,您可以按以下步骤进行算术零碎: