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

Java 验证二叉搜索树

验证二叉搜索树

中等

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

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

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

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

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

示例 1:

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

输出:true

示例 2:

输入:root = [5,1,4,null,null,3,6]

输出:false

解释:根节点的值是 5 ,但是右子节点的值是 4 。

题解(中序遍历)

  1. 创建节点和list集合,list集合用于节点遍历后值的存储

  1. 声明一个中序遍历方法,递归求解

  1. 传入参数,获取节点值

  1. 遍历集合,根据中序遍历性质,如果找到前一个值大于后一个值,说明该树不符合平衡二叉树的特点,返回false,否则返回true。

中序遍历(左+中+右)

(当前节点左右子树不为空时递归调用)先递归遍历左子树节点,在获取当前节点,在递归遍历右子树节点

/*** 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 {public boolean isValidBST(TreeNode root) {List<Integer> list = new ArrayList<>();infixOrder(root,list);System.out.println(list);boolean flag = true;for (int i = 1; i < list.size(); i++) {if(list.get(i-1) >= list.get(i)){flag = false;System.out.println(flag);return flag;}}System.out.println(flag);return flag;}public void infixOrder(TreeNode root,List<Integer> list){if(root != null){if(root.left != null){infixOrder(root.left,list);}list.add(root.val);if(root.right != null){infixOrder(root.right,list);}}}
}
http://www.lryc.cn/news/121.html

相关文章:

  • C/C++单项选择题标准化考试系统[2023-02-09]
  • 爱了爱了,这些顶级的 Python 工具包太棒了
  • 【Explain详解与索引优化最佳实践】
  • 【树和二叉树】数据结构二叉树和树的概念认识
  • 通达信收费接口查询可申购新股c++源码分享
  • 【C#设计模式】创建型设计模式 (单例,工厂)。
  • Ubuntu 22.04 LTS 入门安装配置优化、开发软件安装一条龙
  • 第五十章 动态规划——数位DP模型
  • 02- pandas 数据库 (机器学习)
  • 学Qt想系统的学习,看哪本书?
  • 2023年网络安全比赛--跨站脚本攻击②中职组(超详细)
  • 网络安全实验室4.注入关
  • 领域搜索算法之经典The Lin-Kernighan algorithm
  • 深度学习基础-机器学习基本原理
  • C语言操作符详解 一针见血!
  • 前端面试题汇总
  • 以数据驱动管理场景,低代码助力转型下一站
  • 2023年全国数据治理DAMA-CDGA/CDGP考试报名到弘博创新
  • 流程控制之循环
  • SpringDataRedis快速入门
  • MySQL 的执行计划 explain 详解
  • 2023年网络安全比赛--Web综合渗透测试中职组(超详细)
  • 【c++之于c的优化 - 下】
  • MySQL事务管理
  • 二维计算几何全家桶
  • 基于图的下一代入侵检测系统
  • 若依框架---树状层级部门数据库表
  • 【Mysql第十期 数据类型】
  • 2023-2-9 刷题情况
  • Homekit智能家居DIY设备-智能通断开关