给定一个二叉树,判断其是否是一个有效的二叉搜索树。
一个二叉搜索树有如下定义:
    左子树只包含小于当前节点的数。
    右子树只包含大于当前节点的数。
    所有子树自身必须也是二叉搜索树。
示例 1:
    2
   / \
  1   3
二叉树[2,1,3], 返回 true.
示例 2:
    1
   / \
  2   3
二叉树 [1,2,3], 返回 false.
详见:https://leetcode.com/problems/validate-binary-search-tree/description/

Java实现:

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isValidBST(TreeNode root) {
if(root==null){
return true;
}
return isValidBST(root,Long.MIN_VALUE, Long.MAX_VALUE);
}
private boolean isValidBST(TreeNode root,long min,long max){
if(root==null){
return true;
}else if(root.val<=min||root.val>=max){
return false;
}
return isValidBST(root.left,min,root.val)&&isValidBST(root.right,root.val,max);
}
}

参考:https://www.cnblogs.com/grandyang/p/4298435.html

最新文章

  1. jQuery选择器中,通配符[id^=&#39;code&#39;]input[id$=&#39;code&#39;][id*=&#39;code&#39;]
  2. JAVA基础知识之JDBC——JDBC数据库连接池
  3. Sqoop1.4.6配置和使用
  4. web框架--flask
  5. Android课程---final关键字
  6. j2ee log4j集中式日志解决方案logpool v0.3
  7. JSONProxy - 获取跨域json数据工具
  8. [C.Sharp] Color 颜色转换
  9. 30个惊人的插件来扩展 Twitter Bootstrap
  10. 【Unity3D】自动寻路(Nav Mesh Agent组件)
  11. 动态规划(计数DP):HDU 5136 Yue Fei&#39;s Battle
  12. 7.编写Java应用程序。首先,定义一个Print类,它有一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在 控制台打印出小写的英文字母表。其次,再定义一个主类——TestClass,在主类 的main方法中创建Print类的对象,使用这个对象调用方法output ()来打印出大 小写英文字母表。
  13. [git] 细说commit (git add/commit/diff/rm/reset 以及 index 的概念)
  14. 关于MySQL latch争用深入分析与判断
  15. C#零基础入门-0-开发工具
  16. java环境配置记录
  17. WinForm控件开发总结目录
  18. 将list集合转json
  19. 自学Zabbix14.1 二次开发API
  20. spring boot: ConfigurationProperties

热门文章

  1. CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)
  2. 脚踏实地学C#5-扩展方法
  3. poj分类解题报告索引
  4. Opencv— — mix channels
  5. 疯狂LCM
  6. 编写 DockerFile
  7. 第三篇:SpringBoot用JdbcTemplates访问Mysql
  8. Flutter实战视频-移动电商-37.路由_Fluro引入和商品详细页建立
  9. PHP实用小程序(一)
  10. 区间sum 和为k的连续区间-前缀和