算法学习记录(九十四)

77 阅读1分钟

98. 验证二叉搜索树

image.png

解: 二叉搜索树的性质就是左节点 < 中节点 < 右节点。中序遍历的顺序是左、中、右。所以只要中序遍历,每个节点都保持单调递增就是二叉搜索树,否则不是。

const isValidBST = function(root) {
    let preValue
    function getRes (node) {
        if (!node) return true 
        let flag = true
        const leftFlag = getRes(node.left)
        if (preValue !== undefined) {
            flag = preValue < node.val 
        }
        preValue = node.val
        const rightFlag = getRes(node.right)
        return leftFlag && rightFlag && flag
    }
    return getRes(root)
};