力扣第二題兩數相加

2021-10-01 20:18:17 字數 1156 閱讀 5345

題目如下所示

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

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

您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

示例:輸入:(

2->

4->3)

+(5->

6->4)

輸出:7

->

0->

8原因:342

+465

=807

/** * definition for singly-linked list.

* public class listnode

* }*/

從題目中我們可以得知,鍊錶節點的結構,數是倒著儲存的,最開始我們找到的是個位數的值,接下來是十位百位。。。。

於是加法肯定每個節點相加,

但是如何判斷迴圈條件呢?

相同時,很簡單挨個相加就行。

當兩個鍊錶長度不一樣時,假設l1長l2短,l2所有的加完l1還有剩餘,於是我們這時根據l1是否有下乙個節點繼續迴圈,把l2的值置位0。當兩個鍊錶有乙個為0時,也符合該條件。

這是核心

接下來就是主要的點,題目也提示了,當有一位加滿10的時候,需要進製,於是乎我們需要乙個東西來表示是否相同位置加起來大於10,所以我們打**時要加入乙個常量進行判斷是否該進製。

這時候問題來了,當最高位滿10時我們還需要繼續進製,也就是說在迴圈外還要再判斷是否該進製。根據題目返回值是乙個節點,我們可以設定乙個空的頭結點,並將其和另乙個節點2合併,用節點2進行操作,最後返回頭結點的下乙個節點就行。

//題目所給的

class

solution

}//具體實現

class

solution

if(temp==1)

tempnode.next=

newlistnode

(temp)

;return

head.next;

}}

此題結束。

力扣第二題 兩數相加 python版本

題目描述 給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以0開頭。示例 輸入 7 4 3 5 6 4 輸出 2 1 ...

力扣兩數相加

描述 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 definition for singl...

力扣 兩數相加

給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...