Validate Binary Search Tree,判断是否是二叉排序树
2024-09-28 13:49:32
算法分析:两种方法,一种是中序遍历,然后得到一个序列,看序列是否是有序的。第二种,是用递归。
中序遍历:
public class Solution {
List<Integer> list = new ArrayList<>();
public boolean isValidBST(TreeNode root) {
if(root == null)
{
return true;
}
inorderTraversal(root);
for(int i = 0; i < list.size() - 1; i ++)
{
if(list.get(i) >= list.get(i+1))
{
return false;
}
}
return true;
}
public void inorderTraversal(TreeNode root)
{
if(root == null)
{
return ;
}
inorderTraversal(root.left);
list.add(root.val);
inorderTraversal(root.right);
}
}
递归:
public boolean isValidBST3(TreeNode root) {
return isValidBST(root, null, null);
}
public boolean isValidBST(TreeNode root, Integer min, Integer max)
{
if(root == null)
{
return true;
}
if(min != null && root.val <= min)
{
return false;
}
if(max != null && root.val >= max)
{
return false;
}
return isValidBST(root.left, min, root.val) && isValidBST(root.right, root.val, max);
}
最新文章
- android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。
- linux getch()实现
- 【javascript基础】2、函数
- 个人搜藏小技巧:eclipse 设定proxy,仍不能连网的问题
- BZOJ 3224 TYVJ 1728 普通平衡树 [Treap树模板]
- Spring配置JNDI的解决方案
- CFF前端沙龙总结
- IIS应用程序池回收图文详解
- java web,生成验证码图片的技术
- MyEclipse 启动tomcat时报错:Cannot change deployment state from ERROR to REDEPLOYING.ds
- 入门6:PHP 语法基础——循环
- system2之:4-LVM逻辑卷管理
- 使用Xcode8的Instruments检测解决iOS内存泄露(leak)
- PhoneGap 和 PhoneGap Build 是什么?
- Win32 Windows规划 三
- FFMPEG结构体分析:AVStream
- bat 实现主机hostname的修改
- Active Directory 域服务安装与测试
- sqlserver简便创建用户并授权
- Python模拟弹道轨迹
热门文章
- angularJS中的MVC思想?
- Laravel 5.7 No &#39;Access-Control-Allow-Origin&#39; header is present on the request resource
- Eclipse git pull 报Nothing to fetch 异常原因
- 安卓中通知(Notification)的基本使用方法
- python安装whl文件的注意事项(windows系统)
- Java字符编码问题
- MySQL 数据库的主从配置
- boost.sha1
- day18(JDBC事务&连接池介绍&DBUtils工具介绍&BaseServlet作用)
- ubuntu配置tomcat和jdk