|
9 | 9 | * }
|
10 | 10 | */
|
11 | 11 | class Solution {
|
12 |
| - public ListNode addTwoNumbers(ListNode l1, ListNode l2) { |
13 |
| - ListNode revL1 = reverse(l1); |
14 |
| - ListNode revL2 = reverse(l2); |
15 |
| - ListNode dummy = new ListNode(0); |
16 |
| - ListNode curr = dummy; |
17 |
| - int carry = 0; |
18 |
| - while (revL1 != null || revL2 != null || carry != 0) { |
19 |
| - if (revL1 != null && revL2 != null) { |
20 |
| - carry += revL1.val + revL2.val; |
21 |
| - revL1 = revL1.next; |
22 |
| - revL2 = revL2.next; |
23 |
| - } else if (revL1 != null && revL2 == null) { |
24 |
| - carry += revL1.val; |
25 |
| - revL1 = revL1.next; |
26 |
| - } else if (revL1 == null && revL2 != null) { |
27 |
| - carry += revL2.val; |
28 |
| - revL2 = revL2.next; |
29 |
| - } |
30 |
| - curr.next = new ListNode(carry % 10); |
31 |
| - carry /= 10; |
32 |
| - curr = curr.next; |
| 12 | + public ListNode addTwoNumbers(ListNode l1, ListNode l2) { |
| 13 | + ListNode rev1 = reverse(l1); |
| 14 | + ListNode rev2 = reverse(l2); |
| 15 | + ListNode dummy = new ListNode(); |
| 16 | + ListNode curr = dummy; |
| 17 | + int carry = 0; |
| 18 | + while (rev1 != null || rev2 != null || carry > 0) { |
| 19 | + if (rev1 != null && rev2 != null) { |
| 20 | + carry += rev1.val + rev2.val; |
| 21 | + rev1 = rev1.next; |
| 22 | + rev2 = rev2.next; |
| 23 | + } else if (rev1 == null && rev2 != null) { |
| 24 | + carry += rev2.val; |
| 25 | + rev2 = rev2.next; |
| 26 | + } else if (rev1 != null && rev2 == null) { |
| 27 | + carry += rev1.val; |
| 28 | + rev1 = rev1.next; |
| 29 | + } |
| 30 | + curr.next = new ListNode(carry % 10); |
| 31 | + curr = curr.next; |
| 32 | + carry /= 10; |
| 33 | + } |
| 34 | + return reverse(dummy.next); |
33 | 35 | }
|
34 |
| - return reverse(dummy.next); |
35 |
| - } |
36 |
| - |
37 |
| - private ListNode reverse(ListNode root) { |
38 |
| - ListNode curr = root; |
39 |
| - ListNode prev = null; |
40 |
| - while (curr != null) { |
41 |
| - ListNode next = curr.next; |
42 |
| - curr.next = prev; |
43 |
| - prev = curr; |
44 |
| - curr = next; |
| 36 | + |
| 37 | + private ListNode reverse(ListNode node) { |
| 38 | + ListNode curr = node; |
| 39 | + ListNode prev = null; |
| 40 | + while (curr != null) { |
| 41 | + ListNode next = curr.next; |
| 42 | + curr.next = prev; |
| 43 | + prev = curr; |
| 44 | + curr = next; |
| 45 | + } |
| 46 | + return prev; |
45 | 47 | }
|
46 |
| - return prev; |
47 |
| - } |
48 | 48 | }
|
0 commit comments