面試題 02 05 鍊錶求和

2022-05-13 08:36:16 字數 1068 閱讀 8275

給定兩個用鍊錶表示的整數,每個節點包含乙個數字。

這些數字是反向存放的,也就是個位排在鍊錶首部。

編寫函式對這兩個整數求和,並用鍊錶形式返回結果。

示例:輸入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295

輸出:2 -> 1 -> 9,即912

高階:思考一下,假設這些數字是正向存放的,又該如何解決呢?

示例:輸入:(6 -> 1 -> 7) + (2 -> 9 -> 5),即617 + 295

輸出:9 -> 1 -> 2,即912

#

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:

cur=res=listnode(-1)

carry_bit=0

while l1 and

l2: num=l1.val+l2.val+carry_bit

l1.val=num%10carry_bit=num

cur=cur.next

l1,l2=l1.next,l2.next

left=none

ifl1:

left=l1

else

: left=l2

while left and carry_bit>=0:

num=left.val+carry_bit

left.val=num%10carry_bit=num

cur=cur.next

left=left.next

if carry_bit>0:

cur.next=listnode(carry_bit)

return res.next

面試題 02 05 鍊錶求和

給定兩個用鍊錶表示的整數,每個節點包含乙個數字。這些數字是反向存放的,也就是個位排在鍊錶首部。編寫函式對這兩個整數求和,並用鍊錶形式返回結果。示例 1.先對應位求和 位數少的數對應位不存在就用0加 2.加上上一次的進製 3.得到當前位 4.記錄進製 當位數大的數遍歷完 遍歷完較長的鍊錶 且進製也為0...

面試題 02 05 鍊錶求和

給定兩個用鍊錶表示的整數,每個節點包含乙個數字。這些數字是反向存放的,也就是個位排在鍊錶首部。編寫函式對這兩個整數求和,並用鍊錶形式返回結果。示例 輸入 7 1 6 5 9 2 即617 295 輸出 2 1 9,即912 definition for singly linked list.stru...

面試題 02 05 鍊錶求和

給定兩個用鍊錶表示的整數,每個節點包含乙個數字。這些數字是反向存放的,也就是個位排在鍊錶首部。編寫函式對這兩個整數求和,並用鍊錶形式返回結果。輸入 7 1 6 5 9 2 即617 295 輸出 2 1 9,即912 class solution if l2 listnode node new li...