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

    1.和课本思路保持一致,先找到了根节点   因为是二叉搜索树  所以比根节点值小的是左子树,比根节点大的是右子树    判断完一轮后 将左子树放进去再进行判断! 右子树进行判断 ;当然考虑什么时候有左右子树;

    class Solution {
    public:
        bool VerifySquenceOfBST(vector<int> sequence) {
       if(sequence.empty())
         return false;
        int length=sequence.size();
        int root=sequence.at(length-1);//最后一个    
        int i=0;    
        vector<int> left;
        vector<int> right; 
       //找出左子树  值都小于根节点的值 
         for(i=0;i<length-1;i++)
         { 
           
           if(sequence[i]>root)
               break; //退出循环  得知i
           left.push_back(sequence[i]);
         }
          //找出右子树  值都大于根节点的值 
          for(int j=i;j<length-1;j++)
         {
           if(sequence[j]<root) //后面有比根节点小的  直接报错
               return false;
           right.push_back(sequence[j]);
          }
          
           bool leftflag=true; //如果没有 就是成功
           bool rightflag=true; 
            //判断左子树 满足要求吗
            if (i>0)//如果存在左子树
            { leftflag=VerifySquenceOfBST(left);}
            if (i<length-1)//如果存在右子树  j增加过
            { rightflag=VerifySquenceOfBST(right);}
            return leftflag&&rightflag;
        }
    };
  • 相关阅读:
    JQuery UI
    JQuery 插件
    JQuery Ajax
    varchar和Nvarchar区别
    git冲突解决
    jquery ajax 提交信息后等待返回的提示信息
    Oracle错误 ORA-12560如何解决
    putty ssh连接老断
    myeclipse操作记录
    HTML与HTML5笔记
  • 原文地址:https://www.cnblogs.com/cgy1012/p/11391210.html
Copyright © 2011-2022 走看看