剑指Offer_编程题_23
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
class Solution { public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.size() == 0){ return false; } int start = 0; int end = sequence.size()-1; bool flag = getResult(sequence, start, end); return flag; } bool getResult(vector<int> vt, int start, int end){ int i,j; if(end - start<=1){ return true; } for(i = start; i < end; i++){ if(vt[i]>vt[end]){ break; } } for(j = i; j < end; j++){ if(vt[j]<vt[end]){ return false; } } return getResult(vt,start,i-1)&&getResult(vt,i,end-1); } };