题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
代码
class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence)
{
int n = sequence.size();
int i = 0;
if(0 == n)
{
return false;
}
while (--n)
{
while(sequence[i] < sequence[n])
{
i++;
}
while(sequence[i] > sequence[n])
{
i++;
}
if (i < n)
{
return false;
}
i = 0;
}
return true;
}
};
运行结果
运行时间:4ms
占用内存:472k
解题思路
对于二叉搜索树的后序遍历来说,每一个元素前面的元素都是连续比它小,连续比它大(无重复元素的话)