|
9 | 9 | * }
|
10 | 10 | */
|
11 | 11 | classSolution {
|
12 |
| -publicListNodeaddTwoNumbers(ListNodel1,ListNodel2) { |
13 |
| -ListNoderevL1 =reverse(l1); |
14 |
| -ListNoderevL2 =reverse(l2); |
15 |
| -ListNodedummy =newListNode(0); |
16 |
| -ListNodecurr =dummy; |
17 |
| -intcarry =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 |
| - }elseif (revL1 !=null &&revL2 ==null) { |
24 |
| -carry +=revL1.val; |
25 |
| -revL1 =revL1.next; |
26 |
| - }elseif (revL1 ==null &&revL2 !=null) { |
27 |
| -carry +=revL2.val; |
28 |
| -revL2 =revL2.next; |
29 |
| - } |
30 |
| -curr.next =newListNode(carry %10); |
31 |
| -carry /=10; |
32 |
| -curr =curr.next; |
| 12 | +publicListNodeaddTwoNumbers(ListNodel1,ListNodel2) { |
| 13 | +ListNoderev1 =reverse(l1); |
| 14 | +ListNoderev2 =reverse(l2); |
| 15 | +ListNodedummy =newListNode(); |
| 16 | +ListNodecurr =dummy; |
| 17 | +intcarry =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 | + }elseif (rev1 ==null &&rev2 !=null) { |
| 24 | +carry +=rev2.val; |
| 25 | +rev2 =rev2.next; |
| 26 | + }elseif (rev1 !=null &&rev2 ==null) { |
| 27 | +carry +=rev1.val; |
| 28 | +rev1 =rev1.next; |
| 29 | + } |
| 30 | +curr.next =newListNode(carry %10); |
| 31 | +curr =curr.next; |
| 32 | +carry /=10; |
| 33 | + } |
| 34 | +returnreverse(dummy.next); |
33 | 35 | }
|
34 |
| -returnreverse(dummy.next); |
35 |
| -} |
36 |
| - |
37 |
| -privateListNodereverse(ListNoderoot) { |
38 |
| -ListNodecurr=root; |
39 |
| -ListNodeprev =null; |
40 |
| -while (curr !=null) { |
41 |
| -ListNodenext=curr.next; |
42 |
| -curr.next =prev; |
43 |
| -prev =curr; |
44 |
| -curr =next; |
| 36 | + |
| 37 | +privateListNodereverse(ListNodenode) { |
| 38 | +ListNodecurr =node; |
| 39 | +ListNodeprev =null; |
| 40 | +while (curr!=null) { |
| 41 | +ListNodenext =curr.next; |
| 42 | +curr.next =prev; |
| 43 | +prev=curr; |
| 44 | +curr =next; |
| 45 | + } |
| 46 | +returnprev; |
45 | 47 | }
|
46 |
| -returnprev; |
47 |
| - } |
48 | 48 | }
|