所以我在leetcode的討論中看到了這個解決方案,我無法理解它。
# Definition for singly-linked list.
class ListNode(object)。
def __init__(self, val=0, next=None)。
self.val = val
self.next = next: self.val = val
class Solution。
def addTwoNumbers(self, l1, l2)。
def toint(node)。
a = node.val if node else 0
print(a) #prints 2 4 3
這里===> x = node.val 10 * toint(node.next) if node else 0
print(x) #prints 3 4 2
return x
def tolist(n)。
node = ListNode(n % 10)
if n > 9:
node.next = tolist(n / 10)
return節點
return tolist(toint(l1) toint(l2))
a, a.next, a.next。 next = ListNode(2),ListNode(4),ListNode(3)
b, b.next, b.next。 next = ListNode(5), ListNode(6), ListNode(4)
result = Solution().addTwoNumbers(a, b)
print("{0}, {1}, {2}".format( result. val, result.next.val, result.next.next.val))
我不明白的是,它是如何取一個數字,加10并乘以下一個數字,最后把它們倒過來的。
誰能解釋一下我在這里標記的那一行====>
uj5u.com熱心網友回復:
實際上沒有10的加法或反轉。一些多余的括號顯示了操作的順序。這一行完全等同于
if node:
x = node.val (10 * toint(node.next))
else:
x = 0 else: x = 0
看來,這些鏈接串列的頭部有最小有效數字,所以不需要反轉來添加它們。也就是說,這不是一個預定的解決方案,它利用了Python的bignum,而不是一個節點一個節點地添加數值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/319323.html
標籤:
上一篇:PostgreSQL。如何以遞回方式找到某個軟體包的所有依賴關系?
下一篇:到達m*n矩陣底部的所有可能路徑
