給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。
如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。
您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。
示例:
【中等】輸入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
輸出:7 -> 0 -> 8
原因:342 + 465 = 807
【分析】直接法,將鍊錶轉化成數字相加之後再轉化為鍊錶
【分析】因為個位是對齊的所以相應鍊錶節點相加,並考慮進製。# definition for singly-linked list.
# class listnode(object):
# def __init__(self, x):
# self.val = x
# self.next = none
class solution(object):
def addtwonumbers(self, l1, l2):
""":type l1: listnode
:type l2: listnode
:rtype: listnode
"""def getnum(listnode):
node=listnode
num=0;k=0
while node!=none:
num+=node.val*10**k
node=node.next
k+=1
return num
def getlstnode(num):
lstnode=listnode(num%10)
node=lstnode
num/=10
while num>0:
node.next=listnode(num%10)
num/=10
node=node.next
return lstnode
num=getnum(l1)+getnum(l2)
return getlstnode(num)
例如
(2 -> 1) + (5 -> 6 -> 4) = 7 -> 7 -> 4 (12+465=477)
(9 -> 1) + (9 -> 6 -> 4) = 8 -> 8 -> 4 (19+469=488 有進製)
2 兩數相加
平均星級 4.45 239次評分 2018年2月2日 28.6k次 預覽 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 ...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原因 342 465 807 definition for singly l...
2 兩數相加
給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807演算法 我們首先從最低有效位也就是列表 l1和...