原题链接
解题思路
单列表题。只要任一列表节点不为空,还有进位数字不为0就一直循环执行。维护好进位就行了。不难。
解题代码
/**
* 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) {
int num = 0;
ListNode res = new ListNode(0);
ListNode cur = res;
while(l1 != null || l2 != null || num != 0) {
int v1 = l1 ==null ? 0 : l1.val;
int v2 = l2 ==null ? 0 : l2.val;
int v = v1 + v2 + num;
num = v/10;
cur.next = new ListNode(v%10);
cur = cur.next;
l1 = l1 == null? null : l1.next;
l2 = l2 == null? null : l2.next;
}
return res.next;
}
}