美文网首页
验证一个树是否二叉搜索树

验证一个树是否二叉搜索树

作者: Jimhou | 来源:发表于2019-04-18 21:48 被阅读0次
题目需求

给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
节点的左子树只包含小于当前节点的数。
节点的右子树只包含大于当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。

public class GeekSolutionIsValidBST98 {
    private TreeNode preNode;

/**
中序遍历,看前一个节点是否比后一个节点小
*/
    public boolean isValidBST2(TreeNode root) {


        return inOrderValid(root);
    }

    private boolean inOrderValid(TreeNode root) {

        if (root == null) {
            return true;
        }
        if (!inOrderValid(root.left)) {
            return false;
        }
        if (preNode != null && root.val <= preNode.val) {
            return false;
        }
        preNode = root;
        return inOrderValid(root.right);
    }

    /**
     * 递归解法
     *
     * @param root
     * @return
     */

    public boolean isValidBST(TreeNode root) {

        return validate(root, null, null);

    }


    private boolean validate(TreeNode root, Integer min, Integer max) {


        if (root == null) {
            return true;
        }

        if ((min != null && min > root.val) || (max != null && max < root.val)) return false;
        return validate(root.left, min, root.val) && validate(root.right, root.val, max);

    }
}

相关文章

  • Swift 验证二叉搜索树- LeetCode

    题目: 验证二叉搜索树 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有...

  • [LeetCode OJ]- Valid Binary Sea

    题目要求:验证一个树是否为二叉搜索树。 二叉搜索树:(BST,二叉排序树,二叉查找树)。 一颗二叉检索树或者为空树...

  • LeetCode 98. 验证二叉搜索树

    98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点...

  • LeetCode 验证二叉搜索树

    98、验证二叉搜索树参考给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点...

  • [Leetcode] 98. 验证二叉搜索树

    98. 验证二叉搜索树 来源: 98. 验证二叉搜索树 1. 题目描述 给定一个二叉树,判断其是否是一个有效的二...

  • 【算法】验证二叉搜索树

    验证二叉搜索树 描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子...

  • LeetCode:是否是合法的二叉搜索树

    98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左...

  • LeetCode-098-验证二叉搜索树

    验证二叉搜索树 题目描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的...

  • LeetCode-98-验证二叉搜索树

    LeetCode-98-验证二叉搜索树 98. 验证二叉搜索树[https://leetcode-cn.com/p...

  • 2019 算法面试相关(leetcode)--树、二叉树、二叉搜

    翻转二叉树二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历验证二叉搜索树二叉树的最近公共祖先二叉搜索树的最近公共祖...

网友评论

      本文标题:验证一个树是否二叉搜索树

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