描述:
給出兩個非空的鍊錶用來表示兩個非負的證書。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。
如果,我們將這兩個數加在一起,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字0之外,這兩個數字都不會以0開頭。
示例:
輸入:(2-
>4-
>3)
+(5-
>6-
>4)
輸出:7
->0-
>
8原因:342
+465
=807
文字題解:
方法一:模擬
思路與演算法
由於輸入的兩個鍊錶都是逆序儲存數字的位數的,因此兩個鍊錶中用乙個位置的數字可以直接相加。
我們同時遍歷兩個鍊錶,逐位計算它們的和,並與當前位置的進製值相加。具體而言,如果當前兩個鍊錶處相應位置的數字為n1,n2,進製值為carry,則它們的和為n1 + n2 + carry;其中,答案鍊錶出相應位置的數字為(n1 + n2 + carry)% 10,而新的進製值為(n1 + n2 + carry)/10。
如果兩個鍊錶的長度不同,則可以認為長度短的鍊錶的後面有若干個0。
此外,如果鍊錶便利結束後,有carry > 0,還需要在答案鍊錶的後面附加乙個節點,節點的值為carry。
class
solution
else
carry = sum /10;
if(l1 != null)
if(l2 != null)}if
(carry >0)
return head;
}}
複雜度分析: 演算法題 兩數相加 LeetCode
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
leetcode刷題 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
leetCode 刷題 兩數相加
刷題第一天 兩數之和 原題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 ...