python兩數相加取 兩數相加(Python3)

2021-10-25 19:54:44 字數 1163 閱讀 4845

提出問題:

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

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

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

解題思路:設定兩個指標指向兩條鍊錶,構造新節點儲存兩個當前指標節點的值,當前節點被遍歷過後,指標後移。對於滿10進1的情況,設定乙個變數判斷即可。

**如下( ̄▽ ̄):

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

def addtwonumbers(self, l1: listnode, l2: listnode) -> listnode:

if l1==none:

return l2

elif l2==none:

return l1

else:

h1 = l1

h2 = l2

flag = 0

new = listnode(0)

res = new

while h1 or h2:

temp = 0

if h1:

temp += h1.val

h1 = h1.next

if h2:

temp += h2.val

h2 = h2.next

if flag == 1:

temp += 1

flag = 0

if temp >= 10:

temp -= 10

flag = 1

res.next = listnode(temp)

res = res.next

if flag == 1:

res.next = listnode(1)

return new.next

時間與空間複雜度:

兩數相加python

給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 definition for singly ...

2 兩數相加 python

題目 兩個非空鍊錶表示兩個非負整數,逆序儲存,將兩鍊錶表示的數相加,返回乙個新的逆序鍊錶 法 兩數加法,只是用鍊錶逆序表示,相當於頭節點是個位數字,後面依次是十位 百位數等 注意 1 考慮進製,尤其是最後一次的進製,當兩個鍊錶都遍歷完之後如果還有進製,再在尾部增加乙個節點 2 要記得每次移動指標,避...

兩數之和,兩數相加 leetcode

1.兩數之和,在 leetcode 裡面是屬於 easy 級別的。我們看看他的題目和解法。題目 給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。例子 給...