Add Two Numbers
whck6
You are given two non-empty linked lists representing two non-negative integers.
The digits are stored in reverse order and each of their nodes contain a single
digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the
number 0 itself.*
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 0 -> 8
var addTwoNumbers = function (l1, l2) {
if (l1 && l2) {
let val = l1.val + l2.val;
let l = new ListNode(val % 10);
if (!l1.next && !l2.next) {
l.next = val > 9 ? new ListNode(1) : null;
return l;
}
if (!l1.next) {
l1.next = new ListNode(0);
}
if (!l2.next) {
l2.next = new ListNode(0);
}
if (val > 9) {
if (l1.next) {
l1.next.val++;
} else {
l1.next = new ListNode(1);
}
}
l.next = addTwoNumbers(l1.next, l2.next);
return l;
} else {
return null;
}
};
兩個 list 不一定會是等長,因此當沒有下一個節點的時候會新增一個假的節點,在下一回合檢查的時候
if (!l1.next && !l2.next)
為真即最後回合。