zoukankan      html  css  js  c++  java
  • 二叉搜索树的后序遍历序列

    题目描述

    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
    class Solution {
    public:
        bool isBST(vector<int> &s,int a,int b)
            {
            if(b<a)
                return false;
            if(b==a)
                return true;
            int root=s[b];
            int i,j;
            for(i=a;i<=b-1;i++)
             if(s[i]>root)break;
            bool  left=true;
            if(i>a)
             left=isBST(s,a,i-1);
            for(j=i;j<=b-1;j++)
                if(s[j]<root)return false;
            bool right=true;
            if(i<b-1) return isBST(s,i,b-1);
            return left&&right;
            
        }
        bool VerifySquenceOfBST(vector<int> sequence) {
           if(sequence.size()<0||sequence.size()==0)
               return false;
            if(sequence.size()==1)
                return true;
            int len=sequence.size();
            return isBST(sequence,0,len-1);
            
        }
    };
  • 相关阅读:
    .gitignore规则不生效的解决办法
    docker使用
    mysql 操作
    outlook转发问题
    我的梦想
    安静与流动
    sql 统计 学生成绩2
    sql 统计 关于学生成绩
    数据库备份
    web 注销回到登录页面
  • 原文地址:https://www.cnblogs.com/daocaorenblog/p/5356984.html
Copyright © 2011-2022 走看看