您的位置:首页 > 其它

二叉搜索树的后序遍历序列序列判断是否是二叉搜索树

2016-01-24 17:41 471 查看
class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence) {
if(sequence.empty() == true)
{
return false;
}
return PanDuanTree(sequence,0,sequence.size()-1);
}
bool PanDuanTree(vector<int>seq,int begin,int end)
{
int root = seq[end];
int i;
for(i = begin;i < end ;i++)
{
if(seq[i] > root)
{
break;
}
}
int mid = i;
for(int j = mid;j < end ;j++)
{
if(seq[j] < root)
{
return false;
}
}
bool left = true;
bool right = true;
if(mid > begin)
{
left = PanDuanTree(seq,begin,mid-1);
}
if(mid < end-1)
{
right = PanDuanTree(seq,mid,end-1);
}
return left && right;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: