Find Largest Value in Each Tree Row
Description
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]
Example 3:
Input: root = [1] Output: [1]
Example 4:
Input: root = [1,null,2] Output: [1,2]
Example 5:
Input: root = [] Output: []
Constraints:
- The number of nodes in the tree will be in the range
[0, 104]
. -231 <= Node.val <= 231 - 1
Solution(javascript)
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number[]}
*/
const largestValues = (root) => {
const res = []
if (!root) {
return res
}
let frontier = [root]
while (frontier.length) {
const next = []
let max = -Infinity
frontier.forEach((node) => {
if (node.val > max) {
max = node.val
}
if (node.left) {
next.push(node.left)
}
if (node.right) {
next.push(node.right)
}
})
frontier = next
res.push(max)
}
return res
}