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