AlgoMaster Logo

Add Two Numbers

list1=[2, 4, 3],list2=[5, 6, 4]
1public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
2    ListNode dummyHead = new ListNode(0);
3    ListNode p = l1, q = l2, current = dummyHead;
4    int carry = 0;
5
6    while (p != null || q != null) {
7        int x = (p != null) ? p.val : 0;
8        int y = (q != null) ? q.val : 0;
9
10        int sum = carry + x + y;
11        carry = sum / 10;
12
13        current.next = new ListNode(sum % 10);
14        current = current.next;
15
16        if (p != null) p = p.next;
17        if (q != null) q = q.next;
18    }
19
20    if (carry > 0) {
21        current.next = new ListNode(carry);
22    }
23
24    return dummyHead.next;
25}
0 / 18
l1:243l2:564result:carry: 0