給定兩組非空且非負的整數鏈結串列以相反順序儲存,將兩個數字相加並且返回鏈結。
如果題目為非相反順序儲存則需先反轉鏈結將位數對齊,則這題並沒有這個需要,所以則直接使用疊代將每個Node的數值相加即可,注意進位的部份。
程式碼:
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
carry = 0
first = None
while(l1 or l2):
x = l1.val if l1 else 0
y = l2.val if l2 else 0
carry, value = divmod(x+y+carry, 10)
if(not first):
first = ListNode(value)
tag = first
else:
tag.next = ListNode(value)
tag = tag.next
if(l1): l1 = l1.next
if(l2): l2 = l2.next
if(carry==1):
tag.next = ListNode(1)
return first
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up