class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence) {
int len = sequence.size();
if(len == 0)
return false;
if(len == 1)
return true;
vector<int> leftTree;
vector<int> rightTree;
int root = sequence[len-1];
int i = 0;
for(;i < len;i++){
if(sequence[i] > root)
break;
if(sequence[i] != root)
leftTree.push_back(sequence[i]);
}
for(;i < len; i++){
if(sequence[i] < root)
return false;
if(sequence[i] != root)
rightTree.push_back(sequence[i]);
}
bool left = true,right = true;
if(leftTree.size() > 0)
left = VerifySquenceOfBST(leftTree);
if(rightTree.size() > 0)
right = VerifySquenceOfBST(rightTree);
return left && right;
}
};
二叉搜索樹的後序遍歷序列
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.