剑指offer——二叉搜索树的后序遍历序列
来源:互联网 发布:vb窗体滚动条 编辑:程序博客网 时间:2024/06/03 15:47
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
* 递归实现检测
*
* 对于后序遍历来说,序列数组的最后一个元素一定是根节点,
* 则根据这个元素,将前面的数组分为左、右两个部分,左侧部分都小,右侧部分都大,
* 如果右侧部分有比该根节点小的元素,那么就不是后序遍历,如此递归进行
* @param arr
* @param start
* @param end
* @return
*/
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence.length==0)return false; return Verify1(sequence,0,sequence.length-1); } public boolean Verify1(int []sequence,int start,int end){ //不加会导致数组越界 if(start>=end)return true; int root = sequence[end];// 找到比root大和比root小的分界点,分成左侧、右侧两组数据 int index; for(index=start;index<end&&sequence[index]<root;index++); // 只需要看右侧即可,因为前面的for循环,已经确保左侧部分全部都小于root for(int i = index;i<end;i++){ if(sequence[i]<root)return false; } return Verify1(sequence, start, index-1)&&Verify1(sequence, index, end-1); }}
0 0
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指Offer-->二叉搜索树的后序遍历序列
- 《剑指offer》二叉搜索树的后序遍历序列
- 【剑指Offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指 offer:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列||剑指offer
- 剑指offer-二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- [剑指offer]二叉搜索树的后序遍历序列
- 《剑指offer》-二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- KVM 与 CentOS-6
- 存在障碍的点到点路径和问题(动态规划)
- arcgis api for js入门开发系列十一地图统计图
- 有时候别人要utf-8的数据。。
- 使用RXMLElement工具类解析XML
- 剑指offer——二叉搜索树的后序遍历序列
- QT之读取文本文件中的GPS数据,并解析出经纬度
- Android apk的维护与升级
- centos 7.2 LAMP环境搭建
- 轮廓线
- 万能头文件#include<bits/stdc++.h>
- ITK 阈值分割(Threshold segement/BinaryThreshold)
- Token的身份验证
- Android自定义控件:类QQ6.7.1侧滑菜单栏效果