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

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

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

判断是否后序遍历

情况:

	全右子树
    全左子树
    左右子树
    右左子树(此时不是后序遍历false)
class Solution {
public:
    bool VerifySquenceOfBST(vector<int> sequence) {
        if(sequence.size() == 0)return false;
        if(sequence.size() <= 2)return true;
        int n = sequence.size();//要么全左子树,要么全右,要么左右。
        int ans = sequence[n-1];//根节点
        int k = 0;
        bool flag = false;
        for(int i = 0;i < n;++i){
            if(sequence[i] < ans)
                k = i;
            if(ans < sequence[i])
                flag = true;
            if(flag && ans > sequence[i])
                return false;//右左穿插,直接返回
        }
        vector<int> sequenceleft(sequence.begin(),sequence.begin()+k+1);
        vector<int> sequenceright(sequence.begin()+k+1,sequence.end()-1);
        bool f = false;
        if(sequenceleft.size())//空树为false,判断,此时空树应该为真所以非空再递归
            f = VerifySquenceOfBST(sequenceleft);
        if(sequenceright.size())
            f = f && VerifySquenceOfBST(sequenceright);
        return f;
    }
};
全部评论

相关推荐

这一集&nbsp;硕士输的很惨
HoePointer:普通硕士的悲哀,高的进不去,低的要不起
点赞 评论 收藏
分享
04-27 08:59
常州大学 Java
牛客139242382号:《两门以上汇编语言》
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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