Skip to content

力扣链接:530.二叉搜索树的最小绝对查

难度:⭐

解题关键词:二叉搜索树中序遍历

解题思路:二叉搜索树使用中序遍历就是单调递增增的,我们不断计算差值更新最小绝对差就可以。

typescript
function getMinimumDifference(root: TreeNode | null): number {
  // 保存前一个节点的值,开始设置为 -1
  let pre = -1
  // 将结果首先设置为最大
  let result = Number.MAX_SAFE_INTEGER
  // 深度遍历
  const dfs = (root: TreeNode) => {
    if (root === null) return

    // 左
    dfs(root.left)

    // 如果不是第一个节点,我们就更新最小叉值
    // 如果第一个我们就找最小值,假设将 pre 设置为 0,那么最小绝对差一直就是 0
    if (pre !== -1) {
      result = Math.min(result, root.val - pre)
    }
    // 前一个节点往前走
    pre = root.val

    // 右
    dfs(root.right)
  }

  // 开始深度遍历
  dfs(root)

  return result
};