推 ray90514: 其實可以直接存prev node進位 就不用遞迴了 05/07 09:26
https://leetcode.com/problems/double-a-number-represented-as-a-linked-list/description
2816. Double a Number Represented as a Linked List
給你一個鏈結串列表示的十進位數,把他乘以二並且一樣用鏈結串列表示。
思路:
1.遞迴鏈結串列,如果有進位就返回一個包含進位的node,如果沒進位就返回null。
pycode:
---------------------------------------
class Solution:
def doubleIt(self, head: Optional[ListNode]) -> Optional[ListNode]:
def dfs(root: Optional[ListNode]) -> ListNode:
if not root:
return None
root.val *= 2
carry = dfs(root.next)
if carry:
root.val += carry.val
if root.val > 9:
root.val %= 10
return ListNode(1, root)
else:
return None
node = dfs(head)
return node if node else head
---------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.138.92.150 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1715044721.A.53E.html
※ 編輯: Rushia (101.138.92.150 臺灣), 05/07/2024 09:25:03