作者dont (dont)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Wed Oct 23 09:12:16 2024
2641. Cousins in Binary Tree II
## 思路
BFS
每一層都用Hashtable記錄同父節點的和
然後再更新值 (= 整層總和 - 同父節點的和)
## Code
```python
class Solution:
def replaceValueInTree(self, root: Optional[TreeNode]) ->
Optional[TreeNode]:
root.val = 0
queue = deque()
if root.left:
queue.append((root, root.left))
if root.right:
queue.append((root, root.right))
while queue:
total = 0
table = defaultdict(int)
for _ in range(len(queue)):
parent, node = queue.popleft()
total += node.val
table[parent] += node.val
if node.left:
queue.append((node, node.left))
if node.right:
queue.append((node, node.right))
for parent in table:
if parent.left:
parent.left.val = total - table[parent]
if parent.right:
parent.right.val = total - table[parent]
return root
```
--
https://i.imgur.com/kyBhy6o.jpeg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 185.213.82.50 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1729645939.A.93E.html
→ DJYOMIYAHINA: 別卷了 10/23 09:13
推 sustainer123: 早早早 10/23 09:15
→ dont: 早 10/23 09:20