515. Find Largest Value in Each Tree Row Solution 1 (time O(n), space O(n)) # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object): def largestValues(self, root): """ :type root: TreeNode :rtype: List[int] """ if not root: return [] ans = [root.val] cur_node = [root] while cur_node: new_node = [] new_val = [] for node in cur_node: if node.left: new_node.append(node.left) new_val.append(node.left.val) if node.right: new_node.append(node.right) new_val.append(node.right.val) if len(new_val) > 0: ans.append(max(new_val)) cur_node = new_node return ans