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

class Solution {
public:
    bool dfs(vector<int> q,int l,int r)
    {
        if(l>=r)    return true;
        int root=q[r];
        int idx=l;
        for (; idx < r; idx ++ )
            if(q[idx]>root) break;
        int t=idx;
        while(t<r)
        {
            if(q[t]<root)   return false;
            t++;
        }
        return dfs(q,l,idx-1)&&dfs(q,idx,r-1);
    }
    bool verifySequenceOfBST(vector<int> q) {
        //已知root的值,通过比较大小,判断出左右子树所在的区间,如果左右子树都是二叉搜索树,返回true
        if(!q.size())  return true;
        return dfs(q,0,q.size()-1);
    }
};
posted @   穿过雾的阴霾  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示