剑指Offer:二叉搜索树的后序遍历序列

来源:互联网 发布:linux 调用中文输入法 编辑:程序博客网 时间:2024/06/02 01:58

题目描述

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

class Solution {    bool judge(vector<int>& a, int l, int r){        if(l >= r) return true;        int i = r;        while(i > l && a[i - 1] > a[r])             --i;        for(int j = i - 1; j >= l; --j)            if(a[j] > a[r])                return false;        return judge(a, l, i - 1) && (judge(a, i, r - 1));    }public:    bool VerifySquenceOfBST(vector<int> a) {        if(!a.size()) return false;        return judge(a, 0, a.size() - 1);    }};
0 0