aboutsummaryrefslogtreecommitdiff
path: root/find_largest_value_tree_row.py
diff options
context:
space:
mode:
Diffstat (limited to 'find_largest_value_tree_row.py')
-rw-r--r--find_largest_value_tree_row.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/find_largest_value_tree_row.py b/find_largest_value_tree_row.py
new file mode 100644
index 0000000..ff65b3f
--- /dev/null
+++ b/find_largest_value_tree_row.py
@@ -0,0 +1,30 @@
+# 515. Find Largest Value in Each Tree Row
+import leetcode
+
+"""
+given the 'root' of a binary tree, return an array of the largest value in
+each row of the tree (0-indexed).
+"""
+
+
+class Solution(object):
+ def largestValues(self, root):
+ """
+ :type root: Optional[TreeNode]
+ :rtype: List[int]
+ """
+ ans, row = [], [root]
+ while any(row):
+ ans.append(max(node.val for node in row))
+ row = [child for node in row for child in (node.left, node.right) if child]
+ return ans
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ r1i = [1, 3, 2, 5, 3, None, 9]
+ r2i = [1, 2, 3]
+ r1 = leetcode.list_to_tree(r1i)
+ r2 = leetcode.list_to_tree(r2i)
+ print(obj.largestValues(r1))
+ print(obj.largestValues(r2))