看板 Marginalman 關於我們 聯絡資訊
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
ray90514: 其實可以直接存prev node進位 就不用遞迴了 05/07 09:26