// 每個節點相加,若大於 10 則用 carry 記錄,下個節點要一起計算
var addTwoNumbers = function (l1, l2) {
// 先建立一個 list 連接串列
let list = new ListNode(0);
// 再建立一個 head 指向 list 的頭,也是要輸出的結果
let head = list;
let sum = 0;
let carry = 0;
while (l1 !== null || l2 !== null || carry > 0) {
// 把進位的值先加進去 sum,順便初始化 sum
sum = carry;
for (let i in arguments) {
if (arguments[i] !== null) {
sum += arguments[i].val;
arguments[i] = arguments[i].next;
}
}
carry = Math.floor(sum / 10);
// list 的下個節點值為 sum 的個位數,並把 list 指向下一個節點
list.next = new ListNode(sum % 10);
list = list.next;
}
return head.next;
};