当前位置: 首页 > news >正文

leetcode——验证二叉搜索树(java)

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

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

  • 节点的左子树只包含小于当前节点的数。

  • 节点的右子树只包含 大于 当前节点的数。

  • 所有左子树和右子树自身必须也是二叉搜索树。

示例 1:

img

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

示例 2:

img

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

解题方法:(中序遍历)(左中右顺序依次访问所有的节点)

1.首先判断当前根节点是否为空,如果为空说明是BST,返回true

2.先进入到左子树的递归,如果左子树为空,说明是BST,返回true,否则,返回false,如果当前根节点的值小于上一个,不符合BST高度递增的特性,直接返回false

3.最后更新一下pre的值,进入到右子树的递归即可。

/*** Definition for a binary tree node.* 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;*     }* }*/
class Solution {private long pre = Long.MIN_VALUE;public boolean isValidBST(TreeNode root) {if (root == null) {return true;}if (!isValidBST(root.left) || root.val <= pre) {return false;}pre = root.val;return isValidBST(root.right);}
}

http://www.lryc.cn/news/530185.html

相关文章:

  • 搜索引擎快速收录:关键词布局的艺术
  • VLN视觉语言导航基础
  • 4 Hadoop 面试真题
  • java练习(2)
  • vscode命令面板输入 CMake:build不执行提示输入
  • Java中对消息序列化和反序列化并且加入到Spring消息容器中
  • FFmpeg源码:av_base64_decode函数分析
  • 【后端面试总结】mysql的group by怎么用
  • 计算机视觉和图像处理
  • 一文读懂Python之random模块(31)
  • p1044 栈
  • 吴恩达深度学习——超参数调试
  • SQL NOW() 函数详解
  • 【JAVA基础】双亲委派
  • 刷题记录 HOT100回溯算法-6:79. 单词搜索
  • JavaScript系列(52)--编译优化技术详解
  • Ollama+DeepSeek本地大模型部署
  • 在 WSL2 中重启 Ubuntu 实例
  • 【ts + java】古玩系统开发总结
  • 机器学习周报-文献阅读
  • LabVIEW微位移平台位移控制系统
  • fpga系列 HDL:XILINX Vivado ILA FPGA 在线逻辑分析
  • 刷题记录 贪心算法-2:455. 分发饼干
  • Android --- CameraX讲解
  • ElasticSearch view
  • list的使用,及部分功能的模拟实现(C++)
  • 联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署
  • [Spring] Gateway详解
  • 音叉模态分析
  • BW AO/工作簿权限配置