news 2026/6/10 18:10:14

力扣98 验证二叉搜索树 java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣98 验证二叉搜索树 java实现

98. 验证二叉搜索树

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

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

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

示例 1:

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

示例 2:

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

提示:

  • 树中节点数目范围在[1, 104]
  • -231 <= Node.val <= 231 - 1

二叉搜索树的中序遍历(左 中 右)正好是按从小到大排的,所以用中序遍历来解决该题较容易。

用递归来只需要记录前一个元素,然后按左 中 右递归即可。

public class hot { public static void main(String[] args) { // 测试用 TreeNode treeNode1 = new TreeNode(2); treeNode1.left = new TreeNode(1); treeNode1.right = new TreeNode(3); hot hot = new hot(); System.out.println(hot.isValidBST(treeNode1)); } long pre = Long.MIN_VALUE; public boolean isValidBST(TreeNode root) { if(root.left == null && root.right == null){ return true; } boolean res = dfs(root); return res; } public boolean dfs(TreeNode root){ if (root == null){ return true; } if (!dfs(root.left)){ // 左 return false; } if (root.val <= pre){ // 中 return false; } pre = root.val; // 记录前一个值 if (!dfs(root.right)){ // 右 return false; } return true; } }

以上为记录分享用,代码较差请见谅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:47:40

【VTK手册025】海量点云渲染利器:vtkPointGaussianMapper 详解与实战

【VTK手册025】海量点云渲染利器&#xff1a;vtkPointGaussianMapper 详解与实战 1. 概述 在医学图像处理&#xff08;如DTI纤维束端点显示、血管中心线粒子化展示&#xff09;或手术导航场景中&#xff0c;我们经常需要渲染百万级甚至千万级的点数据。传统的 vtkGlyph3D 会为每…

作者头像 李华
网站建设 2026/6/10 14:43:06

内网专题:从一个安全人员的角度去学习企业型内网安全区域!

内网安全区域的划分目的是想让我们红队在打点的时候能清醒认识自己落到了哪个区域&#xff0c;面临哪个区域的防御&#xff0c;以及我要在内网横向到哪个区域等等&#xff5e;这个是我们今天的流程图&#xff01;第一类&#xff1a;外部接触区&#xff08;互联网暴露面&#xf…

作者头像 李华
网站建设 2026/6/10 10:31:28

什么是私有化部署的即时通讯软件?对通讯有什么作用?

在数字化转型深度推进的今天&#xff0c;即时通讯软件已经成为企业提升沟通协作效率的核心工具。但金融、医疗、政务等行业对敏感信息的管控要求越来越严格&#xff0c;传统的公有云即时通讯软件逐渐暴露出数据泄露风险、监管不到位、合规性要求满意满足等短板。在此背景下&…

作者头像 李华