Skip to content

📚 19.二叉搜索树的最小绝对值差

💻 代码实现

typescript
/**
 * @url https://leetcode.cn/problems/minimum-absolute-difference-in-bst/description/
 */

class TreeNode {
    val: number
    left: TreeNode | null
    right: TreeNode | null
    constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
        this.val = val === undefined ? 0 : val
        this.left = left === undefined ? null : left
        this.right = right === undefined ? null : right
    }
}

function getMinimumDifference(root: TreeNode | null): number {
    let pre: TreeNode,
        res = Number.MAX_SAFE_INTEGER
    const dfs = (root: TreeNode | null | undefined) => {
        if (!root) return Number.MAX_SAFE_INTEGER
        dfs(root.left)
        if (pre) {
            res = Math.min(Math.abs(root.val - pre.val), res)
        }
        pre = root
        dfs(root.right)
        return res
    }
    return dfs(root)
}

Released under the MIT License.