Minimum Depth of Binary Tree

EasyTreeDepth-First SearchBreadth-First SearchBinary Tree

Solution

import { TreeNode } from '@algorithm/lib';
 
export function minDepth(root: TreeNode | null): number {
  if (root === null) {
    return 0;
  }
 
  const dfs = (node: TreeNode | null, depth: number): number => {
    if (node === null) {
      return Number.MAX_SAFE_INTEGER;
    }
    if (node.left === null && node.right === null) {
      return depth;
    }
    return Math.min(dfs(node.left, depth + 1), dfs(node.right, depth + 1));
  };
  return dfs(root, 1);
}