File tree 1 file changed +12
-7
lines changed
src/main/java/com/fishercoder/solutions
1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change 4
4
5
5
public class _2 {
6
6
public static class Solution1 {
7
+ /**
8
+ * My completely original solution on 10/24/2021.
9
+ */
7
10
public ListNode addTwoNumbers (ListNode l1 , ListNode l2 ) {
8
- ListNode result = new ListNode ( 0 ) ;
9
- ListNode tmp = result ;
10
- int sum = 0 ;
11
+ int carry = 0 ;
12
+ ListNode pre = new ListNode (- 1 ) ;
13
+ ListNode tmp = pre ;
11
14
while (l1 != null || l2 != null ) {
12
- sum /= 10 ;
15
+ int sum = 0 ;
13
16
if (l1 != null ) {
14
17
sum += l1 .val ;
15
18
l1 = l1 .next ;
@@ -18,13 +21,15 @@ public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
18
21
sum += l2 .val ;
19
22
l2 = l2 .next ;
20
23
}
24
+ sum += carry ;
21
25
tmp .next = new ListNode (sum % 10 );
22
26
tmp = tmp .next ;
27
+ carry = sum / 10 ;
23
28
}
24
- if (sum / 10 == 1 ) {
25
- tmp .next = new ListNode (1 ); //this means there's a carry, so we add additional 1, e.g. [5] + [5] = [0, 1]
29
+ if (carry != 0 ) {
30
+ tmp .next = new ListNode (carry );
26
31
}
27
- return result . val == 0 ? result . next : result ;
32
+ return pre . next ;
28
33
}
29
34
}
30
35
You can’t perform that action at this time.
0 commit comments