首页 > 其他分享 >leetcode98-验证二叉搜索树

leetcode98-验证二叉搜索树

时间:2023-10-26 21:46:44浏览次数:40  
标签:leetcode98 upper return val 验证 isValid 二叉 root 节点

一开始没有考虑到左子树的所有节点都要小于根节点,右子树要大于根节点,本质上是边界没有考虑仔细,所以比较时需向上比较(和父节点)而不是向下比较(和子节点比大小)
根节点没有父节点,因此初始化时引用最大最小值即可,注意这里的数值范围

点击查看代码
class Solution {
    public boolean isValidBST(TreeNode root) {
        return isValid(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }
    private boolean isValid(TreeNode root, long lower, long upper) {
        if (root == null) {
            return true;
        }
        if(root.val <= lower || root.val >= upper) {
            return false;
        } 
        return isValid(root.left, lower, root.val) && isValid(root.right, root.val, upper);
    }

}

标签:leetcode98,upper,return,val,验证,isValid,二叉,root,节点
From: https://www.cnblogs.com/devinseu/p/17790472.html

相关文章

  • 94.二叉树的中序遍历
    1.题目介绍给定一个二叉树的根节点root,返回它的中序遍历。示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]提示:树中节点数目在范围[0,100]内-100<=Node.val<=1002.题解2.1递归首先我们需......
  • 登录页面--图片验证码
    登陆界面实现图片验证码功能 开始吧!!!如何生成图片呢安装pillow模块pipinstallpillow新建myproject/app01/utils/ttf目录,将字体放在其下新建myproject/app01/utils/code.py,编辑验证码生成函数fromPILimportImage,ImageDraw,ImageFilter,ImageFontimpor......
  • vue和element ui 滑块组件 重置验证滑块父组件ref调用子组件函数,子组件调用自己dom标
    css3可以改变图片的颜色了。从此再也不用设计出多张图,而且随时可以修改。下面就简单介绍下css3中是如何做到改变背景图片的颜色效果的。方式一:利用css3滤镜filter中的drop-shadow代码如下:<style>.icon{display:inline-block;width:180px;height:180px;bac......
  • 代码随想训练营的第十五天(Python)| 二叉树的前、中、后续遍历(各种花式遍历哈哈)
    前序遍历统一写法用None来区分遍历查找的节点和处理节点1、递归法classSolution:defpreorderTraversal(self,root:Optional[TreeNode])->List[int]:res=[]self.preorder(root,res)returnresdefpreorder(self,root,res):......
  • linux 内存盘的使用方式与验证
    linux内存盘的使用方式与验证背景某些情况下,硬盘的写入是一个很大的瓶颈使用内存文件系统的方式应该能够极大的提高IO的速度.内存盘的优点是比较快,缺点就是数据不是持久化的.其实还是有很多可以持续优化的方式与方法的.可以最大化的磁盘的IO速度等.内存盘的多种模......
  • [Leetcode] 0101. 对称二叉树
    101.对称二叉树题目描述给你一个二叉树的根节点root,检查它是否轴对称。 示例1:输入:root=[1,2,2,3,4,4,3]输出:true示例2:输入:root=[1,2,2,null,3,null,3]输出:false 提示:树中节点数目在范围[1,1000]内-100<=Node.val<=100 进阶:你可以运用递......
  • 代码随想训练营第十四天(Python)| 层序遍历 10 、● 226.翻转二叉树 、101.对称二叉树 2
    层序遍历1、迭代法,使用队列classSolution:deflevelOrder(self,root:Optional[TreeNode])->List[List[int]]:res=[]ifrootisNone:returnresqueue=[root]whilequeue:n=len(queue)......
  • 图片验证码
    图片验证码fromPILimportImage,ImageDraw,ImageFontfromioimportBytesIOimportrandom#RGB颜色随机数defget_random():returnrandom.randint(0,255),random.randint(0,255),random.randint(0,255)#图片验证码生成defget_code(request):#产生一......
  • python selenium 利用pyautogui+ActionChains 完美解决我的滑块验证登录问题
    在解决滑块验证的时候不知道什么原因明明是滑块已经对上了,代码执行就是会校验不通过,手动时就可以,中间也做利用ActionChains模块减速滑动轨迹的操作,但仍然不行,后面在执行代码中添加了pyautogui模块使鼠标悬停在屏幕中的某个点而不改变ActionChains鼠标的定位后终于每次都能通过了fro......
  • 验证码不出来
    启动无验证吗图片检查发现web.xml未正确配置重新配置恢复正常 ......