leetcode 兩數相加 中等難度

2021-08-21 10:58:23 字數 832 閱讀 7149

題目如下:

給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。

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

示例:

輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

直接能夠想到的就是把鍊錶中的陣列組成乙個整數然後相加,但是對於較長的鍊錶而言,整數範圍是不夠滴(leetcode上最後的例子數字已經超過了64位所能代表的最大整數,浮點數沒有具體計算過),而且時間複雜度,應該是o(2(m+n)),取數一次操作,賦值又一次操作.所以這裡考慮將每乙個節點的值相加,然後賦值給新的鍊錶,時間複雜度為o(max(m,n)),並且不會出現數值過大無法計算的情況.

**如下

func addtwonumbers(l1 *listnode, l2 *listnode) *listnode 

p3next := p3

cf := 0

for

v2 := 0

if(p2next != nil)

val := v1 + v2 + cf

if val >= 10 else

if p1next != nil

if p2next != nil

if(p1next != nil || p2next!= nil || cf!=0)

p3next = p3next.next

}}else

}return p3

}

2 兩數相加(LeetCode)(中等)

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

leetcode2 兩數相加(中等)

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

LeetCode2 兩數相加 中等

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