Solution
這個問題主要要注意兩點,兩數長度不等的情況和相加進位的情況
var addTwoNumbers = function(l1, l2) {
var n1 = l1,n2 = l2,node;
var v1 = 0,v2 = 0,v3 = 0,sum = 0;
var head = new ListNode(0);
var tail = head;
while (n1 || n2) {
v1 = n1 ? n1.val : 0;
v2 = n2 ? n2.val : 0;
sum = v1 + v2 + v3;
node = new ListNode(sum%10);
v3 = sum >= 10 ? 1 : 0;
tail.next = node;
tail = tail.next;
if (n1) n1 = n1.next;
if (n2) n2 = n2.next;
}
if (v3) tail.next = new ListNode(v3);
return head.next;
};
時間復雜度 O(max(m,n)) m,n代表l1,l2的長度
空間復雜度 O(max(m,n))