C++ 查询一个序列是否可能是一个二叉搜索树的后序遍历
Posted AdamDuncan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 查询一个序列是否可能是一个二叉搜索树的后序遍历相关的知识,希望对你有一定的参考价值。
其中,最重要的是,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++ 查询一个序列是否可能是一个二叉搜索树的后序遍历的主要内容,如果未能解决你的问题,请参考以下文章