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