Minimum Absolute Difference in BST

EasyTreeDepth-First SearchBreadth-First SearchBinary Search TreeBinary Tree

Solution

import { TreeNode } from '@algorithm/lib';
 
export function getMinimumDifference(root: TreeNode | null): number {
  const nodes: number[] = [];
 
  const inorder = (node: TreeNode | null) => {
    if (node === null) {
      return;
    }
    inorder(node.left);
    nodes.push(node.val);
    inorder(node.right);
  };
 
  inorder(root);
  return nodes.reduce(
    (prev, curr, i) => (i === 0 ? prev : Math.min(prev, curr - nodes[i - 1])),
    Number.MAX_SAFE_INTEGER,
  );
}