Find Largest Value in Each Tree Row

MediumTreeDepth-First SearchBreadth-First SearchBinary Tree

Solution

import { TreeNode } from '@algorithm/lib';
 
export function largestValues(root: TreeNode | null): number[] {
  if (!root) {
    return [];
  }
  const answer: number[] = [];
  const find = (node: TreeNode, depth: number) => {
    answer[depth] = Math.max(answer[depth] ?? Number.MIN_SAFE_INTEGER, node.val);
    node.left && find(node.left, depth + 1);
    node.right && find(node.right, depth + 1);
  };
  find(root, 0);
  return answer;
}