题目描述:
举例:
代码(递归):
public class TestDemo {
public static void main(String[] args) {
ListNode l3=new ListNode(3);
ListNode l2=new ListNode(4,l3);
ListNode l1=new ListNode(2,l2);
ListNode l6=new ListNode(4);
ListNode l5=new ListNode(6,l6);
ListNode l4=new ListNode(5,l5);
Solution solution=new Solution();
ListNode listNode = solution.addTwoNumbers(l1, l4);
System.out.println(listNode.val);
System.out.println(listNode.next.val);
System.out.println(listNode.next.next.val);
}
}
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
if(l1==null){
return l2;
}
if(l2==null){
return l1;
}
int val=l1.val+ l2.val;
ListNode next=addTwoNumbers(l1.next, l2.next);
if(val>=10){
val-=10;
next=addTwoNumbers(next, new ListNode(1));
}
return new ListNode(val,next);
}
}
class ListNode {
int val;
ListNode next;
ListNode() {}
ListNode(int val) { this.val = val; }
ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}