LeetCode in JavaScript#2 Add Two Numbers

Leetcode Add Two Numbers

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))

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容