給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例:
輸入:(2-
>4-
>3)
+(5-
>6-
>4)
輸出:7
->0-
>
8原因:342
+465
=807
解題思路:
最開始的想法是將兩個鍊錶轉整數,相加後再將整數轉鍊錶。提交發現超出資料範圍值。然後考慮將整數型別從int提公升到long,但是超過long的範圍還是不行。
考慮到題目沒給鍊錶長度限制,那就只能換思路,乙個乙個數字進行處理。需要考慮進製的問題,引入變數temp儲存進製的值。
**:
class
solution
if(temp >
0) p.next =
newlistnode
(temp)
;return head.next;
}}
兩數相加 力扣 演算法
根據鍊錶獲取鍊錶中的值,按順序存入list private void getlist listnode l,list list 根據字串獲取數字,再進行相加,此處容易出現轉換異常 數字大小超出int long範圍 private long getintnum list list return lon...
兩數相加(力扣C語言)
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。輸入 2 4 3 5 6 4 輸出 7 0...
力扣 2 兩數相加
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。將兩個鍊錶補成長度一致的,短的在後邊補零。...