2019独角兽企业重金招聘Python工程师标准>>>

public static int index=0;
public static copyBST(TreeNode root,int [] array)
{
if(root== null) return ;
copyBST(root.left,array);
array[index]=root.data;
index++;
copyBST(root.right,array);
}
public static boolean checkBST(TreeNode root)
{
int [] array=new int[root.size];
copyBST(root,array);
for(int i=1;i<array.length;i++)
{
if(array[i]<=array[i-1]) return false;
}
return true;
}

public static int last_printed=Integer.MIN_VALUE;
public static boolean checkBST(TreeNode n)
{
if(n==null) return true;
//递归检查左子树
if(!checkBST(n.left)) return false;
//检查当前结点
if(n.data<=last_printed) return false;
last_printed=n.data;
//递归检查右子树
if(!checkBST(n.right)) return false;
return true;//全部检查完毕
}

解法二:最小/最大法

boolean checkBST(TreeNode n)
{
     return checkBST(n,Integer.MIN_VALUE,Integer.MAX_VALUE);
}
boolean checkBST(TreeNode n,int min,int max)
{
if(n==null)
return true;
if(n.data<min||n.data>max)
return false;
if(!checkBST(n.left,min,n.data)||!checkBST(n.right,n.data,max));
{
return false;
}
return true;
}

转载于:https://my.oschina.net/u/2822116/blog/790200

检查一棵二叉树是否为二叉查找树相关推荐

  1. 表达式类型( 一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现 基于二叉树表示的算术表达式Expression的操作)

    文章目录 题目描述 黑框运行的代码 黑框代码下载链接 QT完成页面的代码下载链接 题目描述 一个表达式和一棵二叉树之间,存在着自然的对应关系.写一个程序,实现 基于二叉树表示的算术表达式Express ...

  2. 【二叉树】大学有棵树叫高数,数据结构也有棵二叉树-代码详解

    文章目录 二叉树 二叉树结构 快速构建一颗二叉树 前序遍历 中序遍历 后序遍历 层序遍历 注意点 计算二叉树结点个数 求叶子结点个数 求第K层结点个数 求二叉树的深度 查找值为x的结点 关于二叉树递归 ...

  3. 前人栽树,后人乘凉,这棵二叉树早已枝繁叶茂,快来感受树荫下的清凉吧!!

    目录 二叉树的性质 求节点的个数 求叶子节点的个数 求第K层节点的个数 获取二叉树的高度 查找节点 检查两棵树是否相同 判断一颗树是否是另一棵树的子树 二叉树的性质 1.若规定根节点层数为1,一棵非空 ...

  4. 二叉树学习之二叉查找树 http://blog.csdn.net/callinglove/article/details/40707449

    二叉树学习之二叉查找树 标签: 二叉树二叉树图形化二叉查找树二叉树递归遍历 2014-11-02 10:49  1441人阅读  评论(0)  收藏  举报   分类: ACM&算法(8)  ...

  5. 二叉树(BT)、二叉查找树(BST)、平衡二叉树(AVL)、B-Tree、B+Tree、红黑树(BRT)

    目录 树的概念 树的分类 二叉树 二叉查找树 平衡二叉树(AVL) B-Tree(平衡多路查找树) B树的关键特征 B+Tree B+树关键特征 红黑树(BRT) 左旋 右旋 时间复杂度 树形结构是一 ...

  6. python代码判断两棵二叉树是否相同

    python代码判断两棵二叉树是否相同 给定两个二叉树,编写一个函数来校验它们是否相同.如果两个树在结构上相同,并且结点具有相同的值,则认为它们是相同的. 判断两个二叉树是否是相同的,相同的依据是 二 ...

  7. 手动创建一棵二叉树,然后利用前序、中序、后序、层序进行遍历(从创建二叉树到各种方式遍历)(含运行结果)

    手动创建一棵二叉树,然后利用前序.中序.后序.层序进行遍历 import java.util.LinkedList; import java.util.List; import java.util.Q ...

  8. 已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法...

    已知一棵二叉树的中序序列和后序序列,写一个建立该二叉树的二叉链表存储结构的算法 #define N 10 //二叉树节点的个数 char postorderstr[]={};//后序序列 char i ...

  9. 判断一棵二叉树是否为搜索二叉树、完全二叉树、平衡二叉树(java)

    平衡二叉树的解法:主要是求出二叉树的高度,若根节点的左子树的高度与右子树的高度差小于等于1,则表示该二叉树为平衡二叉树 public static class Node{public int valu ...

最新文章

  1. R和Python谁更好?这次让你「鱼与熊掌」兼得
  2. java语法基础(总结)
  3. mongodb 开启身份认证_Yum安装mongodb及开启用户认证远程登录
  4. 101.编译是如何把一个机器的语言拿到另一台机器语言机器上执行的?
  5. 机器学习规则 (Rules of Machine Learning): 关于机器学习工程的最佳实践
  6. python 多进程 multiprocessing 进程池pool报错 in join assert self._state in (CLOSE, TERMINATE) AssertionError
  7. 在服务器上安装vasp如何得到输出文件,云服务器安装vasp
  8. windows中启动 java -jar 后台运行程序
  9. CXF(2.7.10) - RESTful Services, JSON Support
  10. mongo(删除操作)
  11. 李沐动手学深度学习d2l
  12. 软件设计模式、目标、原则
  13. dp动态规划分类详解
  14. TCP/IP协议簇中三个常见的传输层协议
  15. C# for循环99乘法表
  16. 0LL或0x0UL是什么意思?
  17. 鸿蒙初开 原文,《鸿蒙初开,天地混沌》 译文
  18. 时光金科php_重庆金科博翠宸章 | ACA麦垦景观
  19. VB.net 移动文件夹去另一个地址,删除文件夹里某种类型的文件
  20. 设计原则 单一职责原则、开放封闭原则、依赖倒置原则、里氏代换原则、迪米特法则

热门文章

  1. 编程小白的第一本python入门书-编程小白的第一本 Python 入门书
  2. python编写一个软件-如何用Python写一个计算器软件 附带效果图
  3. 方差、标准差、均方差、均方误差理解
  4. LeetCode686 Repeated String Match(字符串匹配)
  5. LeetCode Range Sum Query - Mutable(树状数组、线段树)
  6. 【前端统计图】echarts实现属性修改
  7. 【helloworld】-微信小程序开发教程-入门篇【1】
  8. Python之Pandas库学习(一):简介
  9. 面下个对象 多态特性
  10. 回到顶部和返回首页jquery插件