[英]What's wrong with my recursion? Trying to add two node in each traversal
Seems like my linear linked list didn't connect for each recursion.似乎我的线性链表没有为每次递归连接。 Need explanation why my code doesn't work.
需要解释为什么我的代码不起作用。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
if(l1 == null)
return null;
int val = l1.val + l2.val;
ListNode newNode = new ListNode(val);
System.out.println(newNode.val);
return newNode.next = addTwoNumbers(l1.next, l2.next);
}
}
Your input您的输入
[2,4,3] [5,6,4] [2,4,3] [5,6,4]
Your stdout你的标准输出
7 10 7 7 10 7
Your answer你的答案
[] []
Expected answer预期答案
[7,10,7] [7,10,7]
I think that you didn't return newNode.next .我认为你没有返回newNode.next 。 You must call recursion method with newNode.next but you must return newNode .
您必须使用 newNode.next 调用递归方法,但必须返回newNode 。 Ps.
附言。 Remember to add
if (l2==null) return null;
记得加上
if (l2==null) return null;
Change改变
return newNode.next = addTwoNumbers(l1.next, l2.next);
To到
newNode.next = addTwoNumbers(l1.next, l2.next);
return newNode
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.