面试题24:二叉搜索树的后序遍历序列
来源:互联网 发布:万能手机录像机软件 编辑:程序博客网 时间:2024/06/10 06:28
面试题24:二叉搜索树的后序遍历序列
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
代码:
package offer;import java.util.Arrays;/** * 面试题24:二叉搜索树的后序遍历序列 * 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 * 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 */public class _24_binary_tree_postorder { public static void main(String[] args){ int[] a={5,7,6,9,11,10,8}; int[] a2={7,4,6,5}; int[] a3={4,6,7,6}; Solution24 solution24 = new Solution24(); System.out.println(solution24.VerifySquenceOfBST(a)); }}class Solution24 { public boolean VerifySquenceOfBST(int[] sequence) { int len=sequence.length; return getSequence(sequence,len); } public boolean getSequence(int [] sequence,int len){ if(sequence==null||len<=0){ return false; } int root=sequence[len-1]; //在二叉搜索树中左子树的节点小于根节点 int left=0; int i=0; for(i=left;i<len-1;i++){ if(sequence[i]>root){ break; } } left=i; //在二叉搜索树中右子树的节点大于根节点 int right=left; for(int j=right;j<len-1;j++){ if(sequence[j]<root){ return false; } } //判断左子树是不是二叉搜索树 boolean leftTree=true; if(left>0){ leftTree=getSequence(Arrays.copyOfRange(sequence,0,left),left); } //判断左子树是不是二叉搜索树 boolean rightTree=true; if(left<len-1){ rightTree=getSequence(Arrays.copyOfRange(sequence,left,len-1),len-left-1); } return leftTree&&rightTree; }}
0 0
- [剑指offer][面试题24]二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 【剑指offer】面试题24:二叉搜索树的后序遍历序列
- 剑指Offer:面试题24 二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 《剑指Offer》面试题24:二叉搜索树的后序遍历序列
- 剑指offer 面试题24—二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 面试题24二叉搜索树的后序遍历序列
- 剑指offer--面试题24:二叉搜索树的后序遍历序列--Java实现
- 【剑指Offer学习】【面试题24:二叉搜索树的后序遍历序列】
- 面试题24_二叉搜索树的后序遍历序列
- 剑指Offer面试题24(Java版):二叉搜索树的后序遍历序列
- 剑指offer_面试题24_二叉搜索树的后序遍历序列(递归)
- 剑指offer面试题24-二叉搜索树的后序遍历序列
- 面试题24二叉搜索树的后序遍历序列cpp
- 面试题24:二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 冒泡排序及java代码实现
- Spring Ioc注入的四种方式
- 欢迎使用CSDN-markdown编辑器
- linux 性能监控分析以及调优(sar)
- 重生
- 面试题24:二叉搜索树的后序遍历序列
- 平面最近点对 洛谷1257 分治 c++
- Ubuntu 软件安装1
- POJ2318 TOYS
- (四)阿里巴巴JAVA编程规范之工程规约
- Easyui中combobox的隐藏
- linux系统调用
- CentOS之安装
- 5 Linux ls