Minimum Distance Between BST Nodes

EasyTreeDepth-First SearchBreadth-First SearchBinary Search TreeBinary Tree

Solution

import { TreeNode } from '@algorithm/lib';
 
export function minDiffInBST(root: TreeNode | null): number {
  if (!root) {
    return 0;
  }
 
  let result = Number.MAX_SAFE_INTEGER;
  let prevValue = Number.MIN_SAFE_INTEGER;
  const inorder = (node: TreeNode) => {
    if (node.left) {
      inorder(node.left);
    }
    result = Math.min(result, node.val - prevValue);
    prevValue = node.val;
    if (node.right) {
      inorder(node.right);
    }
  };
  inorder(root);
  return result;
}