This commit is contained in:
parent
c8e4f3ba14
commit
c61b4932ce
1 changed files with 28 additions and 0 deletions
28
medium/find_largest_value_in_each_tree_row.py
Normal file
28
medium/find_largest_value_in_each_tree_row.py
Normal 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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue