515. Find Largest Value in Each Tree Row
Medium
Given the root
of a binary tree, return an array of the largest value in each row of the tree (0-indexed).
Example 1:
Input: root = [1,3,2,5,3,null,9]
Output:
[1,3,9]
Example 2:
Input: root = [1,2,3]
Output:
[1,3]
Constraints:
The number of nodes in the tree will be in the range
[0, 104]
.-231 <= Node.val <= 231 - 1
解題
/**
* 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
}
Last updated