class Solution { public: bool VerifySquenceOfBST(vector<int> sequence) { //从前往后找到第一个大于根节点的点ir if(sequence.size()==0){ return false; } bool res =getRes(sequence,0,sequence.size()-1); return res; } bool getRes(vector<int> s, int start, int end){ int j=0; int i=0; if(end-start<=1){ return true; } for( i=start;i<end;i++){ if(s[i]>s[end]){ break; } } for(j=i;j<end;j++){ if(s[j]<s[end]){ return false; } } bool left = true; bool right = true; if(i>0){ left = getRes(s,start,i-1); } if(i<s.size()-1){ right= getRes(s,i,end-1); } return left&&right; } };
原文:https://www.cnblogs.com/loyolh/p/12343079.html