0
点赞
收藏
分享

微信扫一扫

20220405树:验证二叉搜索树

回溯 2022-04-05 阅读 53

        题目描述:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:

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

        编码实现:

    public boolean isValidBST(TreeNode root) {
        return isValidBST(root,Long.MIN_VALUE,Long.MAX_VALUE);
    }

    public boolean isValidBST(TreeNode treeNode,long minValue,long maxValue){
        if (treeNode == null){
            return true;
        }
        if (treeNode.val >= maxValue || treeNode.val <= minValue)
            return false;
        return isValidBST(treeNode.left, minValue, treeNode.val) && isValidBST(treeNode.right, treeNode.val, maxValue);
    }

public class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;
    TreeNode() {}
    TreeNode(int val) { this.val = val; }
    TreeNode(int val, TreeNode left, TreeNode right) {
        this.val = val;
        this.left = left;
        this.right = right;
    }
}
举报

相关推荐

0 条评论