Input: root = [1,3,2,5,3,null,9]
Output:
[1,3,9]
Input: root = [1,2,3]
Output:
[1,3]
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func largestValues(root *TreeNode) []int {
res := make([]int, 0)
var helper func(*TreeNode, int)
helper = func(root *TreeNode, level int) {
if root == nil { return }
if len(res) == level {
res = append(res, root.Val)
} else {
if root.Val > res[level] {
res[level] = root.Val
}
}
helper(root.Left, level + 1)
helper(root.Right, level + 1)
}
helper(root, 0)
return res
}