判断二叉搜索树的方法是:

中序遍历形成递增序列

//全局变量记录中序遍历产生的序列,因为要递归,所以要用全局变量
List<Integer> list = new ArrayList<>();
public boolean isValidBST(TreeNode root) {
/*
这里要注意二叉搜索树的左子树的每个节点都要小于根节点,不只是左孩子,右子树也同样,
常犯的一个错误就是只是判断了左孩子和右孩子
正确方法是:中序遍历法,中序遍历之后的结果是一个递增序列
判断是否是二叉搜索树的方法是:中序遍历法,记住
*/
if (root==null) return true;
inOrder(root);
for (int i = 1; i < list.size(); i++) {
if (list.get(i)<=list.get(i-1))
return false;
}
return true;
}
void inOrder(TreeNode root){
if (root==null)
return;
inOrder(root.left);
list.add(root.val);
inOrder(root.right);
}

最新文章

  1. H5案例分享:JS手势框架 —— Hammer.js
  2. poj[2104]K-th Number
  3. HDU 4454 Stealing a Cake(枚举角度)
  4. 横向滑动的HorizontalListView滑动指定位置的解决方法
  5. Visual Studio 文件没发布出来
  6. Blitz Templates介绍
  7. Nginx开启gzip压缩功能
  8. Android - 广播机制和Service
  9. Delphi结构中使用String时遇到的内存泄露问题(没有利用String的引用计数自动销毁字符串的功能)
  10. Hibernate框架--对象的状态,缓存, 映射
  11. 速成制作rpm包
  12. readSerializableObj
  13. python_协程方式操作数据库
  14. 【NOIP2016TG】solution
  15. Java中Semaphore(信号量)的使用
  16. 3. React 组件生命周期介绍
  17. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.shen.mapper.UserMapper.findById
  18. 2019浙大校赛--G--Postman(简单思维题)
  19. 解决Docker容器时区不一致的问题
  20. 使用openpyxl的styles,实现写入值时加背景色

热门文章

  1. SpringBoot中的Tomcat是如何启动的?
  2. 5.1 Spring5源码--Spring AOP源码分析一
  3. PyQt(Python+Qt)学习随笔:窗口layout布局的SizeConstraint和部件的大小约束策略sizePolicy不起作用的问题
  4. 第3章 Python的数据类型目录
  5. 缩减项目代码中的大面积if策略
  6. C#声明一个100大小的数组 随机生成1-100之间不重复的数
  7. 网络QoS的平衡之道——音视频弱网对抗策略介绍
  8. tcp/ip原理/三次握手/四次挥手
  9. Reflect个人记录
  10. docker redis 设置和使用