牛客网 剑指offer 二叉搜索树的后序遍历序列

时间限制:1秒空间限制:32768K热度指数:9504

**算法知识视频讲解

题目描述

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

题解:利用后序遍历的特征,前半部分为小于根节点,后半部分为大于根节点

代码如下:

class Solution {
public:
    int index=0;
    bool VerifySquenceOfBST(vector<int> sequence) {
        if(index==0&&sequence.size()==0)return false;
        if(sequence.size()==0)return true;
       // if(sequence.size()==1)return true;
		vector<int>left,right;
        int i=0;
        int val=sequence[sequence.size()-1];
        while(sequence[i]<val){
            ++i;
            left.push_back(sequence[i]);
        }
        while(sequence[i]>val){
            ++i;
            right.push_back(sequence[i]);
        }
         ++index;
        if(i==sequence.size()-1&& VerifySquenceOfBST(left)&&VerifySquenceOfBST(right)){
          
           return true;
        }
        return false;
    }
};

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦