二叉搜索树的后序遍历序列
来源:互联网 发布:淘宝助理导出宝贝详情 编辑:程序博客网 时间:2024/05/21 11:20
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
**题解:**BST的后序序列满足最后一个元素x是根,去掉最后一个元素可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后序序列。
递归实现(注意左右子树都有可能为空)
class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.size() == 0) return false; return verify(sequence, 0, sequence.size()-1); }private: bool verify(vector<int>& sequence, int left, int right){ if(right <= left) return true; int j = right-1; //找出左子树的根节点 while(j >= left && sequence[j] > sequence[right]) j--; //如果左子树中有大于根结点的,非法 for(int i = left; i < j; i++){ if(sequence[i] > sequence[right]) return false; } return verify(sequence, left, j) && verify(sequence, j+1, right-1); }};
0 0
- 二叉树------二叉搜索树的后序遍历序列
- 【树5】二叉搜索树的后序遍历序列
- 题目10:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 1367:二叉搜索树的后序遍历序列 @jobdu
- 二叉搜索树的后序遍历序列
- Q24:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 设计模式:工厂模式
- 设计模式之建造者模式
- Json的使用
- Jira6.3.6 Installation
- 设置字体
- 二叉搜索树的后序遍历序列
- POJ 2236
- HashMap详解
- Unity相机视野的缩放,旋转及跟随
- HTML基础知识点总结
- JZOJ 4.1 B组 删数
- poj 2912(并查集,食物链)
- centOS_7_新特性
- hadoop中文wordcount无结果输出