public class IsBinTreePostTraverse{
static boolean isBSTPostOrder(int[] a){
if(a==null){
return false;
}
/*1.只有一个结点时,肯定是查找树
*2.只有两个结点时,肯定是查找树。例如{5,6}对应的BST是 6 {6,5}对应的BST是 5
* / \
* 5 6
*/
if(a.length<=2){
return true;
}
//多于三个结点,则递归判断
return isBSTPostOrderHelper(a,0,a.length-1);
}
static boolean isBSTPostOrderHelper(int[] a,int s,int e){
int len=a.length;
if(!(s>=0&&s<len&&e>=0&&e<len)){//检查下标是否合法
return false;
}
if(s==e||s==e-1){
return true;
}
int i=e-1;
while(a[i]>a[e])i--;//直到a[i]是e的左孩子
if(s<=i&&i<e){
boolean firstPart=isBSTPostOrderHelper(a,s,i);
boolean secondPart=isBSTPostOrderHelper(a,i+1,e-1);
return firstPart&&secondPart;
}
return false;
}
public static void main(String[] args) {
int[][] a= {
{5,7,6,9,11,10,8},
{5,6,7},
{5,7,6},
{1,3,2,5,7,6,4,9,11,10,13,15,14,12,8},
};
for(int[] each:a){
boolean re=isBSTPostOrder(each);
System.out.println(re);
}
}
}
分享到:
相关推荐
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果. 8 / \ 6 10 / \ / \ 5...
Protocol Buffers被定义为一种数据描述语言(Data Description Language,DDL),广泛的应用于Google内部,用于结构... 本jar包为最新的protobuf的java开发包,可以直接进行使用,不需重新生成自己的java的jar包了~~~~
这个jar包可以实现xml与json字符串互相转化的功能。通过常我们反序列化时都习惯用json,但有些接口仍然使用xml,那么可以借助这个工具来实现xml转换json了。
二叉树先序、中序、后序遍历非递归算法,简述了二叉树的基本算法。
数据结构C++二叉链表的先序遍历、中序遍历和后序遍历实现
数据结构经典算法,使用C语言编写可以更便于大部分人群阅读,希望大家可以共同进步
ShiroExp-1.3.1-all.jar shiro反序列化检测工具 我这里是用于搭建攻防演练演示环境用
有一个整数型列表,判断该列表是否为对应二叉搜索树的后序遍历结果 ''' 二叉搜索树 二叉排序树 二叉查找树 前序遍历 中序遍历 后序遍历 根节点 算法: 1. 找到根节点 2. 遍历序列,找到第一个大于根节点的元素i,则i...
已知二叉树的前序和中序遍历,打印后序遍历,采用二叉树的非递归算法,分享给大家~~
二叉搜索树的后序遍历序列,二叉搜索树的后序遍历序列,python,jupyter
剑指 Offer 33. 二叉搜索树的后序遍历序列有空看下这个题解,感觉和我的思路不一样面试题33. 二叉搜索树的后序遍历序列(递归分治 / 单调栈,清晰图解)
但首先要理解的是,“反序列化漏洞”是对一类漏洞的泛指,而不是专指某种反序列化方法导致的漏洞,比如Jackson反序列化漏洞和Java readObject造成的
Protocol Buffers(简称protobuf)是谷歌的一项技术,用于将结构化的数据序列化、反序列化,经常用于网络传输。
二叉搜索树的后序遍历序列.md
java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.<Marshaller> [-a] [-v] [-t] [<gadget_type> [<arguments...>]] 参数说明: -a:生成exploit下的所有payload(例如:hessian下的...
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果...
[问题描述] 建立二叉树,并输出二叉树的先序,中序和后序遍历序列,以及二叉树的叶子数。 [基本要求] 要求根据读取的元素建立二叉树,能输出各种遍历。 [实现提示] 可通过输入带空格的前序序列建立二叉链表。
一、实验目的 1、掌握二叉树的基本概念,链表描述方法;遍历方法。 二、实验内容 1、 创建二叉树类。二叉树的存储结构使用...4、 接收键盘录入的二叉树前序序列和中序序列(各元素各不相同),输出该二叉树的后序序列。
本程序采用非递归方法实现对二叉树的先序、中序、后序遍历.自定义栈和树的结构。