二叉搜索树的左子树节点小于根节点小于右子节点
二叉搜索树的后序遍历序列中根节点一定在数组的最后一个位置
可以把序列分为两部分,分别代表根节点左子树和右子树,然后对新形成的序列继续递归判断可得到结果
class Solution {
public:
bool VerifySquenceOfBST(vector<int> sequence) {
int len=sequence.size();//计算序列长度
if(len==0)return false;
int i=0;
vector<int>left,right;
//因为后序遍历,所以序列的最后一个元素为根节点元素,如果是二叉搜索树那么所有小于最后一个元素的在左子树
for(;i<len-1;i++)//将所有小于最后一个节点的值放在left向量中
{
if(sequence[i]<sequence[len-1])
left.push_back(sequence[i]);
else
break;
}
for(;i<len-1;i++)//将所有小于最后一个节点的值放在left向量中
{
if(sequence[i]>sequence[len-1])
left.push_back(sequence[i]);
else
r