美文网首页
leetcode-验证二叉搜索树

leetcode-验证二叉搜索树

作者: 8239e604d437 | 来源:发表于2018-12-24 18:00 被阅读0次

    给定一个二叉树,判断其是否是一个有效的二叉搜索树。

    假设一个二叉搜索树具有如下特征:

    节点的左子树只包含小于当前节点的数。
    节点的右子树只包含大于当前节点的数。
    所有左子树和右子树自身必须也是二叉搜索树。
    示例 1:

    输入:
        2
       / \
      1   3
    输出: true
    

    示例 2:

    输入:
        5
       / \
      1   4
         / \
        3   6
    输出: false
    

    解释: 输入为: [5,1,4,null,null,3,6]。
    根节点的值为 5 ,但是其右子节点值为 4 。

    代码
    中序遍历,

        
    let prev = null;
    var isValidBST = function(root,isBodyNode) {
        if(!isBodyNode){
            prev = null;
        }
    
        if(root === null || (!isBodyNode && root.left === null && root.right === null) ){
            
            return true;
        }
    
        if(!isValidBST(root.left,true)){
            return false;
        }
        if(prev && prev.val >= root.val ){
            return false;
        }
        prev = root;
      
        
        if(!isValidBST(root.right,true)){
            return false;
        }
        return true;
            
        
    };
        
    
        
    
    

    相关文章

      网友评论

          本文标题:leetcode-验证二叉搜索树

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