Add Two Numbers
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(-1);
ListNode p = l1, q = l2, cur = dummy;
int carry = 0;
while (p != null || q != null) {
int x = p != null ? p.val : 0;
int y = q != null ? q.val : 0;
int sum = x + y + carry;
carry = sum / 10; //only have 0 or 1 because most is 9 + 9 + 1 = 19;
cur.next = new ListNode(sum % 10);
if (p != null) p = p.next;
if (q != null) q = q.next;
cur = cur.next;
}
if (carry != 0) {
cur.next = new ListNode(carry);
}
return dummy.next;
}
}
最后更新于
这有帮助吗?