1 /**
2 * @param {ListNode} l1
3 * @param {ListNode} l2
4 * @return {ListNode}
5 */
6 var addTwoNumbers = function (l1, l2) {
7 let addOne = 0
8 let sum = new ListNode('0')
9 let head = sum
10 while (addOne || l1 || l2) {
11 let val1 = l1 !== null ? l1.val : 0 // 优化点
12 let val2 = l2 !== null ? l2.val : 0 //优化点
13 let r1 = val1 + val2 + addOne
14 addOne = r1 >= 10 ? 1 : 0
15 sum.next = new ListNode(r1 % 10)
16 sum = sum.next
17 if (l1) l1 = l1.next
18 if (l2) l2 = l2.next
19 }
20 return head.next
21 };