leetcode之兩數相加

2021-10-17 16:03:37 字數 1220 閱讀 5237

這題每用到什麼特殊的演算法,直接上**

# definition for singly-linked list.

# class listnode:

# def __init__(self, val=0, next=none):

# self.val = val

# self.next = next

class

solution

:def

addtwonumbers

(self, l1: listnode, l2: listnode)

-> listnode:

head = listnode(

(l1.val+l2.val)%10

) carry =

(l1.val+l2.val)

//10

a = head

l1 = l1.

next

l2 = l2.

next

while

(l1 or l2 or carry)

: new = listnode(

) v1 = l1.val if l1 else

0 v2 = l2.val if l2 else

0 sum = v1 + v2 + carry

carry = sum//

10 new = listnode(sum%10)

a.next

=new

a = a.

next

l1 = l1.

next

if l1 else

none

l2 = l2.

next

if l2 else

none

return head

官方答案和我的差不多,這裡就不放了。

時間複雜度:o(m

ax(m

,n))

o(max(m,n))

o(max(

m,n)

),其中m,n為兩個鍊錶的長度。

空間複雜度:o(m

ax(m

,n))

o(max(m,n))

o(max(

m,n)

).

LeetCode之兩數相加

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

LeetCode之兩數相加

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

leetcode之兩數相加

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