/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} l1 * @param {ListNode} l2 * @return {ListNode} */ var addTwoNumbers = function(l1, l2) { var carry = 0; var sum; var startNode = null; var prevNode = null; var node = null; while(true){ if (l1 !== null){ if (l2 !== null){ sum = l1.val + l2.val + carry; } else { sum = l1.val + carry; } } else { if (l2 === null){ break; } else { sum = l2.val + carry; } } if (sum >= 10){ sum = sum - 10; carry = 1; } else { carry = 0; } node = { val: sum, next: null } if (prevNode !== null){ prevNode.next = node; } if (startNode === null){ startNode = node; } prevNode = node; if (l1 !== null){ l1 = l1.next; } if (l2 !== null){ l2 = l2.next; } } if (carry === 1){ node = { val: 1, next: null } prevNode.next = node; } return startNode; };