https://oj.leetcode.com/problems/validate-binary-search-tree/

1.中序遍历是否有序

/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
private int a=-(1<<31); public boolean isValidBST(TreeNode root) { return middle(root); }
public boolean middle(TreeNode root)
{
if(root==null) return true;
if(!middle(root.left)) return false;
if(root.val<=a)
{
return false; } a=root.val;
return middle(root.right); }
}

  2.记住每个节点的范围 开始时候(min,max)设为int最大,最小,然后在左子树上范围为(min, root.val) 判断节点是否在范围;

/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isValidBST(TreeNode root) { int min=-(1<<31);
int max=1<<31-1;
return isValid(root,min,max); }
public boolean isValid(TreeNode root,int min,int max)
{
if(root==null) return true;
if(root.val>min&&root.val<max)
{
return isValid(root.left,min,root.val)&&isValid(root.right,root.val,max); }
return false; }
}

  

最新文章

  1. 【转】Unix NetWork Programming——环境搭建(解决unp.h等源码编译问题)
  2. C++ Pitfalls 之 reference to an object in a dynamically allocated containter
  3. WinForm------GridControl右键添加动态菜单
  4. zoj 3644(dp + 记忆化搜索)
  5. Android – 学习操作NFC – 2
  6. C#和Javascript间互转的Xxtea加解密
  7. jQuery预加载插件
  8. attitude
  9. 宏中&quot;#&quot;和&quot;##&quot;的用法
  10. prototype constructor __proto__
  11. 基于visual Studio2013解决C语言竞赛题之1045打印成绩
  12. Java Maps
  13. cordova 自定义 plugin
  14. platform模块
  15. Linux大页内存管理等---菜鸟初学
  16. 【并发】1、关于线程的几种状态&amp;关于yield的理解
  17. 【Spring学习笔记-2】Myeclipse下第一个Spring程序-通过ClassPathXmlApplicationContext加载配置文件
  18. Linux修改本地时间
  19. WinPE作为启动硬盘
  20. Linux下的shell编程入门

热门文章

  1. arcgisserver
  2. Codevs 1191 数轴染色
  3. jquery api 笔记(2) 事件 事件对象
  4. PHP生成制作验证码
  5. MYSQL数据库备份与恢复
  6. 【python】求水仙数
  7. App页面显示优化
  8. Hbase案例分析(二)
  9. Wordpress 网站搭建及性能监控方法详解!
  10. POJ 2750 Potted Flower(线段树的区间合并)