1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { int size=sequence.size(); if(size==0)return false; else if(size==1)return true; int root=sequence.back(); int i,iLeftEnd; bool result=true; for(i=0;i<size-1;i++) { if(sequence[i]>root) { iLeftEnd=i; break; } } for(;i<size-1;i++) { if(sequence[i]<root) return false; } if(iLeftEnd>0)//保证左子树有成员才判断,避免迭代空vector { vector<int>leftson; leftson.assign(sequence.begin(),sequence.begin()+iLeftEnd); result=VerifySquenceOfBST(leftson); if(!result)return false; } if(iLeftEnd<size-1)//保证右子树有成员才判断,避免迭代空vector { vector<int>rightson; rightson.assign(sequence.begin()+iLeftEnd,sequence.end()-1); result=VerifySquenceOfBST(rightson); } return result; }}; |
原文:http://www.cnblogs.com/zhxshseu/p/5285137.html