题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence) {
if(!sequence.size())return false;
return verify(sequence, 0, sequence.size() - 1);
}
bool verify(vector<int>s, int l, int r){
if(l >= r)return true;
int i = l;
while(s[i] < s[r])i++;
int tmp = i;
while(s[i] > s[r])i++;
if(i != r)return false;
return verify(s,l,tmp - 1) && verify(s, tmp, r - 1);
}
};