File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Definition for singly-linked list.
3
+ * function ListNode(val, next) {
4
+ * this.val = (val===undefined ? 0 : val)
5
+ * this.next = (next===undefined ? null : next)
6
+ * }
7
+ */
8
+ /**
9
+ * @param {ListNode } l1
10
+ * @param {ListNode } l2
11
+ * @return {ListNode }
12
+ */
13
+ const addTwoNumbers = function ( head1 , head2 ) {
14
+ const r1 = reverse ( head1 ) , r2 = reverse ( head2 )
15
+ let l1 = r1 , l2 = r2 , inc = 0
16
+ let dummy = new ListNode ( )
17
+ let pre = dummy
18
+ while ( l1 || l2 ) {
19
+ let val = inc
20
+ if ( l1 ) {
21
+ val += l1 . val
22
+ l1 = l1 . next
23
+ }
24
+ if ( l2 ) {
25
+ val += l2 . val
26
+ l2 = l2 . next
27
+ }
28
+ if ( val > 9 ) inc = 1
29
+ else inc = 0
30
+ const cur = new ListNode ( val % 10 )
31
+ pre . next = cur
32
+ pre = cur
33
+ }
34
+ if ( inc ) {
35
+ pre . next = new ListNode ( 1 )
36
+ }
37
+ return reverse ( dummy . next )
38
+ } ;
39
+
40
+ function reverse ( head ) {
41
+ const dummy = new ListNode ( )
42
+ dummy . next = head
43
+ let len = 0 , cur = head
44
+ while ( cur ) {
45
+ len ++
46
+ cur = cur . next
47
+ }
48
+ let p = dummy , tail = head , tmp = null
49
+ for ( let i = 0 ; i < len - 1 ; i ++ ) {
50
+ tmp = p . next
51
+ p . next = tail . next
52
+ tail . next = tail . next . next
53
+ p . next . next = tmp
54
+ }
55
+ return dummy . next
56
+ }
57
+
58
+
59
+ // another
60
+
1
61
/**
2
62
* Definition for singly-linked list.
3
63
* function ListNode(val) {
You can’t perform that action at this time.
0 commit comments