Link: https://leetcode.com/problems/find-largest-value-in-each-tree-row/

Solution:

Topics: DFS, BFS

Intuition
Pretty trivial problem…either DFS or BFS works here. I’ll implement it with a DFS since the implementation is a bit simpler, but at the cost of stack space of course.

Implementation

def find_largest(root):
	res = []
	def dfs(node, level):
		if node is None:
			return 
		if len(res) < level + 1:
			res.append(node.val)
		else:
			res[level] = max(res[level], node.val)
		dfs(node.left, level + 1)
		dfs(node.right, level + 1)
	dfs(root, 0)
	return res
 
#time: o(n)
#memory: o(n)

review