這題每用到什麼特殊的演算法,直接上**
官方答案和我的差不多,這裡就不放了。# 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...