File tree Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for singly-linked list.
3+ * function ListNode(val) {
4+ * this.val = val;
5+ * this.next = null;
6+ * }
7+ */
8+ /**
9+ * @param {ListNode } l1
10+ * @param {ListNode } l2
11+ * @return {ListNode }
12+ */
13+ let addTwoNumbers = function ( l1 , l2 ) {
14+ let i = 0
15+ let root = new ListNode ( )
16+ let cur = root
17+ let plus = false
18+
19+ let traverse = ( node1 , node2 ) => {
20+ let isDouble = ! ! node2
21+ while ( isDouble ? node1 && node2 : node1 ) {
22+ cur . next = new ListNode ( )
23+ cur = cur . next
24+
25+ let sum = node1 . val + ( plus ? 1 : 0 )
26+ if ( isDouble ) {
27+ sum += node2 . val
28+ }
29+
30+ if ( sum >= 10 ) {
31+ sum %= 10
32+ plus = true
33+ } else {
34+ plus = false
35+ }
36+ cur . val = sum
37+
38+ node1 = node1 . next
39+ if ( isDouble ) {
40+ node2 = node2 . next
41+ }
42+ }
43+
44+ if ( node1 ) {
45+ traverse ( node1 )
46+ }
47+ if ( node2 ) {
48+ traverse ( node2 )
49+ }
50+ }
51+
52+ traverse ( l1 , l2 )
53+
54+ if ( plus ) {
55+ cur . next = new ListNode ( 1 )
56+ }
57+
58+ return root . next
59+ }
You can’t perform that action at this time.
0 commit comments