File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,45 @@ Explanation: 342 + 465 = 807.
30
30
* @return {ListNode}
31
31
*/
32
32
var addTwoNumbers = function (l1 , l2 ) {
33
+ var carried = 0 ; // 用于进位
34
+ const head = new ListNode ();
35
+ const noop = {
36
+ val: 0 ,
37
+ next: null
38
+ };
39
+ let currentL1 = l1;
40
+ let currentL2 = l2;
41
+ let currentNode = head; // 返回的链表的当前node
42
+ let newNode; // 声明在外面节省内存
43
+ let previousNode; // 记录前一个节点,便于删除最后一个节点
44
+
45
+ while (currentL1 || currentL2) {
46
+ newNode = new ListNode (0 );
33
47
48
+ currentNode .val =
49
+ ((currentL1 || noop).val + (currentL2 || noop).val + carried) % 10 ;
50
+
51
+ currentNode .next = newNode;
52
+ previousNode = currentNode;
53
+ currentNode = newNode;
54
+
55
+ if ((currentL1 || noop).val + (currentL2 || noop).val + carried >= 10 ) {
56
+ carried = 1 ;
57
+ } else {
58
+ carried = 0 ;
59
+ }
60
+
61
+ currentL1 = (currentL1 || noop).next ;
62
+ currentL2 = (currentL2 || noop).next ;
63
+ }
64
+
65
+ if (carried) {
66
+ // 还有位没进呢
67
+ previousNode .next = new ListNode (carried)
68
+ } else {
69
+ previousNode .next = null ;
70
+ }
71
+
72
+ return head;
34
73
};
35
74
```
You can’t perform that action at this time.
0 commit comments