剑指off-判断一个数组是不是搜索二叉树的后序遍历的序列
2015-07-19 19:17
399 查看
题目:判断一个数组是不是搜索二叉树的后序遍历的序列,假设每个值都不一样
分析:搜索二叉树有一个特性,左都比根小,右都比根大,那么后序遍历的最后一个数字式根节点,其余部分为两方面,一部分比它小,一部分比它大,其中最重要的每部分最后一个都是根节点,所以采用递归的方式。
分析:搜索二叉树有一个特性,左都比根小,右都比根大,那么后序遍历的最后一个数字式根节点,其余部分为两方面,一部分比它小,一部分比它大,其中最重要的每部分最后一个都是根节点,所以采用递归的方式。
bool HR(int seque[],int length)//HR 后入 噗 { if (seque==NULL || length<=0) { return false; } int root=seque[length-1];//找到根节点 //找到左子树的根节点,找到右子树根节点,然后递归 int i=0; for (; i<length; i++) { if (seque[i]>root) { break; } } int left; if (i==length) { //开始的时候调了一会,发现是叶子节点的时候 i也会++ 所以把是叶子的时候单独做了一个判断 left=0; } else left=i; int j=i; for (; j<length; j++) { if (seque[j]<root) { //这部分应该比root都大 一旦出现小的 就证明有问题 return false; } } int right=length-1-left; if (left <0 ||right<0) { return false; } bool bleft=true; bool bright=true; if (left>0) { bleft=HR(seque, left); } if (right>0) { bright=HR(seque+left, right); } return bleft && bright; }
相关文章推荐
- 209题——Minimum Size Subarray Sum(两个指针)
- 引跑科技副总裁张晓东:引跑DBone数据库助力大数据建设
- java调用C++详解
- NopCommerce源码架构详解--初识高性能的开源商城系统cms
- 2015年07月09日第七天笔记
- mysql主键自增
- 安静的转换有多安静?
- 二叉树序言、为了、经过非递归措辞预订透彻的分析
- python下的pillow安装
- jQuery全屏滚动插件fullPage.js
- Java调用C#步奏详解
- LightOJ 1153 (网络流最大流 sap)
- [Android]Eclipse连不上模拟器的问题[emulator-5554 disconnected]
- PyCharm设置python新建文件指定编码为utf-8
- HTML5 播放音频
- 最近有点迷茫,该清醒了
- poj 1149 PIGS (网络流最大流Dinic)
- 《纸牌屋》——交换才是硬道理?
- hdu 3549 Flow Problem ek算法,网络流
- 2015年07月07日第六天笔记