Leetcode第三題 兩數相加

2021-10-25 08:18:39 字數 865 閱讀 6699

描述:

給出兩個非空的鍊錶用來表示兩個非負的證書。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。

如果,我們將這兩個數加在一起,則會返回乙個新的鍊錶來表示它們的和。

您可以假設除了數字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 開頭。示例 輸入 ...