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;
		}
}

最后更新于

这有帮助吗?