码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 查询一个序列是否可能是一个二叉搜索树的后序遍历

时间:2017-09-18 01:10:30      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:后序   ceo   重要   ack   turn   ++   bst   sequence   应该   

其中,最重要的是,sequence一开始如果它的值为空的话,它是要返回false。但是之后,只要sizex小于3都应该返回true

class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence) {
if (sequence.size() == 0)
{
return false;
}
return VerifySquenceOfBSTChild(sequence);
}
bool VerifySquenceOfBSTChild(vector<int> sequence)
{
if (sequence.size() < 3)
{
return true;
}
int temp = sequence[sequence.size() - 1];
vector<int> littlerVec;
vector<int> biggerVec;
int i = 0;
for (; i < sequence.size() - 1; i++)
{
if (sequence[i] < temp)
{
littlerVec.push_back(sequence[i]);
} else {
break;
}
}
for (; i < sequence.size() - 1; i++)
{
if (sequence[i] > temp)
{
biggerVec.push_back(sequence[i]);
} else {
return false;
}
}
return (VerifySquenceOfBSTChild(littlerVec) && VerifySquenceOfBSTChild(biggerVec));
}
};

C++ 查询一个序列是否可能是一个二叉搜索树的后序遍历

标签:后序   ceo   重要   ack   turn   ++   bst   sequence   应该   

原文地址:http://www.cnblogs.com/adamhome/p/7538827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!