bumpsoo 2024-12-25 19:58:20 +09:00
parent c8e4f3ba14
commit c61b4932ce

View file

@ -0,0 +1,28 @@
# https://leetcode.com/problems/find-largest-value-in-each-tree-row
from typing import Deque, List, Optional, Tuple
from collections import deque
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def largestValues(self, root: Optional[TreeNode]) -> List[int]:
d: Deque[Tuple[TreeNode, int]] = deque()
result: List[int] = []
if root is not None:
d.append((root, 1))
while len(d) > 0:
node, level = d.popleft()
if len(result) < level:
result.append(node.val)
else:
result[level - 1] = max(result[level - 1], node.val)
if node.left is not None:
d.append((node.left, level + 1))
if node.right is not None:
d.append((node.right, level + 1))
return result