算法分析:两种方法,一种是中序遍历,然后得到一个序列,看序列是否是有序的。第二种,是用递归。

中序遍历:

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);
}

最新文章

  1. android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。
  2. linux getch()实现
  3. 【javascript基础】2、函数
  4. 个人搜藏小技巧:eclipse 设定proxy,仍不能连网的问题
  5. BZOJ 3224 TYVJ 1728 普通平衡树 [Treap树模板]
  6. Spring配置JNDI的解决方案
  7. CFF前端沙龙总结
  8. IIS应用程序池回收图文详解
  9. java web,生成验证码图片的技术
  10. MyEclipse 启动tomcat时报错:Cannot change deployment state from ERROR to REDEPLOYING.ds
  11. 入门6:PHP 语法基础——循环
  12. system2之:4-LVM逻辑卷管理
  13. 使用Xcode8的Instruments检测解决iOS内存泄露(leak)
  14. PhoneGap 和 PhoneGap Build 是什么?
  15. Win32 Windows规划 三
  16. FFMPEG结构体分析:AVStream
  17. bat 实现主机hostname的修改
  18. Active Directory 域服务安装与测试
  19. sqlserver简便创建用户并授权
  20. Python模拟弹道轨迹

热门文章

  1. angularJS中的MVC思想?
  2. Laravel 5.7 No &#39;Access-Control-Allow-Origin&#39; header is present on the request resource
  3. Eclipse git pull 报Nothing to fetch 异常原因
  4. 安卓中通知(Notification)的基本使用方法
  5. python安装whl文件的注意事项(windows系统)
  6. Java字符编码问题
  7. MySQL 数据库的主从配置
  8. boost.sha1
  9. day18(JDBC事务&连接池介绍&DBUtils工具介绍&BaseServlet作用)
  10. ubuntu配置tomcat和jdk