(鏈表) LeetCode2. 兩數(shù)相加

題目:
給出兩個 非空 的鏈表用來表示兩個非負的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲的,并且它們的每個節(jié)點只能存儲 一位 數(shù)字。

如果,我們將這兩個數(shù)相加起來,則會返回一個新的鏈表來表示它們的和。
您可以假設除了數(shù)字 0 之外,這兩個數(shù)都不會以 0 開頭。
示例:
輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807

方法:初等數(shù)學
** 時間復雜度:O(max(m,n))
空間復雜度: O(max(m,n))**

<html>
<body>
<script>
    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode} l1
     * @param {ListNode} l2
     * @return {ListNode}
     */
    function ListNode(val) {
        this.val = val;
        this.next = null;
    }
    function createListNode(arr){
        let nextRst = new ListNode(null), 
            result = nextRst;
        arr.forEach(item => {
            nextRst.next = new ListNode(item);
            nextRst = nextRst.next;
        })
        return result.next
    }
    var a = createListNode([4, 0, 8]);
    var b = createListNode([3, 0, 4]);
    var addTwoNumbers = function(l1, l2) {
        let result = new ListNode(null);
        let nextRst = result;
        // 進位
        let params = 0 // 傳給下一個層級的值
        let val = 0 // 傳給當前層級的值
        
        while(l1 != null || l2 != null) {
            // TODO
            let x = (l1 != null) ? l1.val : 0;
            let y = (l2 != null) ? l2.val : 0;
            
            val = (x + y + params) % 10;
            params = Math.floor((x + y + params) / 10);
           
            nextRst.next = new ListNode(val) 
            nextRst = nextRst.next
            
            if(l1 != null) l1 = l1.next
            if(l2 != null) l2 = l2.next        
        
        }
        
        if(params) {
           nextRst.next = new ListNode(params)
        }
        
        return result.next
    };
    var c = addTwoNumbers(a, b);
</script>
</body>
</html>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 2. 兩數(shù)相加 給出兩個 非空 的鏈表用來表示兩個非負的整數(shù)。其中,它們各自的位數(shù)是按照 逆序 的方式存儲的,并且...
    TheKey_閱讀 303評論 0 1
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,042評論 0 2
  • 1.把二元查找樹轉變成排序的雙向鏈表 題目: 輸入一棵二元查找樹,將該二元查找樹轉換成一個排序的雙向鏈表。 要求不...
    曲終人散Li閱讀 3,496評論 0 19
  • 445. 兩數(shù)相加 II 給定兩個非空鏈表來代表兩個非負整數(shù)。數(shù)字最高位位于鏈表開始位置。它們的每個節(jié)點只存儲單個...
    TheKey_閱讀 357評論 0 0
  • 遠方的風 起 旋起落葉 夢回曾經 我愛你時 四季如春 塵土親吻落葉 花朵等待約見 呼吸里都是夢的味道 我不愛你時 ...
    請叫我千花大人閱讀 184評論 0 2

友情鏈接更多精彩內容