2 兩數相加 Python LeetCode

2021-08-18 03:57:44 字數 1625 閱讀 1203

兩數相加:

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

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

示例:

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

輸出:7 -> 0 -> 8

原因:342 + 465 = 807

解法:把鍊錶l1和l2中的數字從左到右乙個個讀取出來的同時按照位數規律乘10的n次,同時存入變數a。然後建立兩個鍊錶,temp和l3,l3是用來最後輸出temp的,因為l3一直都指向temp的初始位置。  a對10取餘的值放入temp中。

while l1 != none or l2 !=none or a != 0:
這行**以 a or b or c來解釋or的用法,  

當a為真時,直接返回a(也就是真),b和c不再去看它;

當a為假,看b,如果b為真,就返回b(也就是真),c不再去看它

當a,b為假,c為真,就返回c(也就是真)

當a,b,c都為假,就直接返回a(也就是假)

false(假)包括0(包括0.0等)、none、''和空集等情況

**如下:

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class solution:

def addtwonumbers(self, l1, l2):

""":type l1: listnode

:type l2: listnode

:rtype: listnode

"""#先初始化temp鍊錶,l3鍊錶指向temp的0值位址

temp = listnode(0)

l3 = temp

a = 0

#當l1不為空或者l2不為空或者a不等於0的時候

while l1 != none or l2 !=none or a != 0:

if l1 != none:

#a等於a加上l1當前的值

a += l1.val

#l1的指標指向下乙個

l1 = l1.next

if l2 != none:

a += l2.val

l2 = l2.next

#temp的下乙個的值就是 a%10

temp.next = listnode(a%10)

temp = temp.next

a=a//10

#l3代替temp來輸出鍊錶

文中有什麼描述不當的請諒解!

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和...