剑指offer_二叉搜索树的后序遍历序列
2018-04-03 10:30
375 查看
原题描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路
采用递归的思想。首先明确二叉搜索树的概念(左小右大),不要与二叉线索树混淆了。以数组的最后一个数为根节点,根据左小右大的原则找到右子树的第一个结点,然后判定右子树中是否有小于根节点的值,有则返回false;最后注意递归结束的条件为low>=high。class Solution { public: bool VerifySquenceOfBST(vector<int> sequence) { return VerifyLocalSqunenceOfBST(sequence,0,sequence.size()-1); } bool VerifyLocalSqunenceOfBST(vector<int>sequence,int low,int high){ if(sequence.size()==0) return false; if(low>=high) return true; int i=low; while(sequence[i]<sequence[high]){ i++; } for(int j=i;j<high;j++){ if(sequence[j]<sequence[high]) return false; } return VerifyLocalSqunenceOfBST(sequence,low,i-1)&&VerifyLocalSqunenceOfBST(sequence,i,high-1); } };
相关文章推荐
- 剑指offer—二叉搜索树的后序遍历序列
- 剑指Offer-二叉搜索树的后序遍历序列
- [剑指offer] 二叉搜索树的后序遍历序列
- 【剑指offer】十六,二叉搜索树的后序遍历序列
- 【剑指Offer面试编程题】题目1367:二叉搜索树的后序遍历序列--九度OJ
- 剑指offer面试题24:二叉搜索树的后序遍历序列
- 剑指offer面试题24:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 【剑指Offer_在线编程】 【牛客网22题:二叉搜索树的后序遍历序列】
- 剑指offer之二十---二叉搜索树的后序遍历序列
- 【剑指Offer面试编程题】题目1367:二叉搜索树的后序遍历序列--九度OJ
- 剑指offer 之 二叉搜索树的后序遍历序列
- 剑指offer:(25)举例让抽象问题具体化 :二叉搜索树的后序遍历序列
- 剑指offer-23.二叉搜索树的后序遍历序列
- 剑指offer——二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 剑指Offer面试题33:二叉搜索树的后序遍历序列
- 剑指offer 24 二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 【九度OJ1367】|【剑指offer24】二叉搜索树的后序遍历序列