首页 > 其他分享 >98. 验证二叉搜索树

98. 验证二叉搜索树

时间:2023-12-25 15:32:37浏览次数:27  
标签:node return 验证 二叉 98 root 节点 isValidBST

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。

有效 二叉搜索树定义如下:

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

 

示例 1:

98. 验证二叉搜索树_子节点

输入:root = [2,1,3]
输出:true

示例 2:

98. 验证二叉搜索树_子节点_02

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

 

提示:

  • 树中节点数目范围在[1, 104] 内
  • -231 <= Node.val <= 231 - 1
class Solution {
    public boolean isValidBST(TreeNode root) {
        return isValidBST(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }

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

标签:node,return,验证,二叉,98,root,节点,isValidBST
From: https://blog.51cto.com/u_16040716/8969249

相关文章

  • 接口自动化测试复习巩固第二天,管理员后端验证和接口抓包+requests实现
    接口自动化测试第二天,需要用到的第三方库有os,openpyxl,json,pytest,requests首选我们今天的目标是写出一个测试登录用例的脚本,这里我用的是分层设计,整个框架暂时被分为工具层,测试数据层,用例层。工具层:这里我会先放目前需要用到的脚本测试数据层:用例执行时需要的测试数据,我会以exce......
  • ZHS16GBK字符集下面Oracle数据库varchar与nvarchar的验证
    ZHS16GBK字符集下面Oracle数据库varchar与nvarchar的验证背景周末分析了SQLServermysql等数据库想着继续分析一下oracle数据库这边oracle使用的是ZHS16GBK的字符集.所以比较特殊.还是建议得使用UTF-8字符集.能让系统干的活就让系统干,自己干国际化太费劲了.处......
  • 达梦数据库varchar和nvarchar的验证
    达梦数据库varchar和nvarchar的验证测试SQLcreatetablespacezhaobshdatafile'/opt/dmdbms/data/DAMENG/zhaobsh.dbf'size128#需要注意达梦数据库的大小限制为:#第1行附近出现错误[-2422]:数据文件[/opt/dmdbms/data/DAMENG/zhaobsh.dbf]大小无效,取值范围为(128~671......
  • 二叉树 - 基本概念
    1.树的基本概念与数组链表不同,树是一种非线性的存储结构,它由n(n>=0)个节点构成并具有层次关系的存储结构把这个存储结构叫做树是因为它看上去像一颗倒挂着的树,只是根在上叶子在下它有以下特性:1. 有一个特殊的结点,称为根结点,根结点没有前驱结点2.树是由若干不相交的......
  • PG数据库存储验证
    PG数据库存储验证背景最近学习了SQLServer数据库的varchar和nvarchar的存储想到PG数据库其实没让选择字符集,也没有nvarchar所以想学习一下nvarchar的使用情况建表以及插入sqlsu-postgrespsqlcreatedatabasezhaobsh\czhaobshcreatetablezhaobsh(zhaobshvarch......
  • 完全二叉树的公共父结点
    1.有点后序遍历的思想,就是先把左子树,右子树的结果算出来,然后合并到根节点。2.合并时四种情况分类讨论.3.对于遇到要找的点就可以直接返回,不管另一个点在这个点下面还是在别的子树上,都是正确的intn,m;inta[N];intquery(introot,intx,inty){ //cerr<<root<<endl; if(r......
  • TiDB v7.5.0 vs Oceanbase v4.2.1.1: online ddl 吐血验证测试
    作者:h5n11         测试环境3台ARM服务器,同时部署TiDB和OceanBase。TiDB:v7.5.0社区版,kvcache32G,CPU48核(tidb+tikv+pd,numa),普通ssd。Oceanbase:4.2.1.1社区版,租户内存128G,48核,普通ssd。2         测试内容以Oceanbase4.2.1官网文档为基准测试......
  • 108. 将有序数组转换为二叉搜索树
    给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1」的二叉树。 示例1:输入:nums=[-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,nu......
  • 637. 二叉树的层平均值
    目录题目题解:BFS题目给定一个非空二叉树的根节点root,以数组的形式返回每一层节点的平均值。与实际答案相差10-5以内的答案可以被接受。题解:BFSclassSolution:defaverageOfLevels(self,root:Optional[TreeNode])->List[float]:q=[root]#用列表做......
  • 二叉树给出先序和中序遍历序列,求和树 要求输出中序遍历序列;
    1.就算不知道用vector的初始化,也可以手动赋值创建子数组。2.不断找到当前序列对应的根节点,计算他的子节点的总和,在这样递归处理过程中,注意要中序输出,所以对于是先遍历完左子树,然后输出答案,然后遍历右子树#include<bits/stdc++.h>usingnamespacestd;#definelllonglong//......