美文网首页
二叉树学习---校验是否是合法的二叉搜索树

二叉树学习---校验是否是合法的二叉搜索树

作者: 大柚子08 | 来源:发表于2021-03-01 18:41 被阅读0次

    题目描述

    leetcode地址
    二叉搜索树是指:左子树的节点值严格小于根节点,右子树的节点值严格大于根节点。

    源码

    现给出一个二叉树,校验其是否满足二叉搜索树的特性。

    比如下图中,右节点4小于根节点5,不是二叉搜索树。


    截屏2021-03-01 上午11.27.15.png

    思路分析

    分解问题为一个一个的子问题,一颗大的二叉树是搜索树的前提是,其左右子树也是二叉树,只要在判断子树过程中发现有不满足条件的,则整个二叉树不满足条件。


    截屏2021-03-01 下午6.01.26.png

    代码实现

    /**
     * @param {TreeNode} root
     * @return {boolean}
     */
    var isValidBST = function(root) {
        if(root === null || (root.left === null && root.right === null)) return true
        return recursive(root, -Infinity, Infinity)
        function recursive(node, left, right) {
            if(node === null) return true;
            if(node.val <= left || node.val >= right) return false
            return recursive(node.left, left, node.val) && recursive(node.right, node.val, right)
        }
    };
    

    相关文章

      网友评论

          本文标题:二叉树学习---校验是否是合法的二叉搜索树

          本文链接:https://www.haomeiwen.com/subject/bgaofltx.html