题解 | #二叉搜索树的后序遍历序列#

二叉搜索树的后序遍历序列

https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd

#include <climits>
#include <vector>
class Solution {
public:
    bool check(vector<int> sequence){
        if (sequence.size() <= 1)
            return true;
        int root = sequence[sequence.size() - 1];
        int index = sequence.size() - 1;

        for (int i = 0; i < sequence.size() - 1; i++){
            if (sequence[i] > root){
                index = i;
                break;
            }
                
        }

        vector<int> left(sequence.begin(), sequence.begin() + index);
        bool left_bool = check(left);
        vector<int> right(sequence.begin() + index, sequence.end() - 1);
        bool right_bool = check(right);
        
        if (right.size() >= 1){
            for (auto num : right){
                if (root > num)
                    return  false;
            }
        }
        return left_bool && right_bool;
    }
    bool VerifySquenceOfBST(vector<int> sequence) {
        if (sequence.size() == 0)
            return false;
        bool result = check(sequence);
        return result;
    }
};

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-18 14:26
点赞 评论 收藏
分享
秋招投简历提醒助手:一开始还觉得是正常交流。直到一看薪资4-6😨
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务