剑指offer——面试题24:二叉搜索树的后序遍历序列

Solution1:

二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
参考网址:https://www.nowcoder.com/profile/8378038/codeBookDetail?submissionId=17463800

class Solution {
public:bool VerifySquenceOfBST(vector<int> sequence) {return bst(sequence,0,sequence.size()-1);}bool bst(vector<int> &sequence,int begin,int end){ //整型参数为vector下标if(sequence.empty()||begin>end)return false;int root=sequence[end];int i=begin;for(;i<end;++i) //从左向右查数,以确定边界。//故已经循环过的数字肯定是根结点的左子树,//故在下一个for循环中秩序判断边界向右的数字是否是右子树中的值即可if(sequence[i]>root)//i坐标为右子树第一个节点break;for(int j=i;j<end;++j) //如果上个for循环是从右向左查数来确定边界,//则在该for循环中只需判断边界向左中的数是否是左子树中的值即可if(sequence[j]<root)return false;bool left=true;if(i>begin) //若i==begin,则左子树为空,此时左子树为默认的trueleft=bst(sequence,begin,i-1);bool right=true;if(i<end-1) //若i==end-1,则右子树为一个点,此时右子树为默认的trueright=bst(sequence,i,end-1);return left&&right;}
};

Solution2:

2018年9月1日重做

class Solution {
public:bool VerifySquenceOfBST(vector<int> sequence) {return bst(sequence, 0, sequence.size() - 1);}bool bst(vector<int> &sequence, int begin, int end) { //整型参数为vector下标if (sequence.empty() || begin > end)return false;int root = sequence[end]; //根结点int i = begin;//找到左右子树的分割点for (; i < end; ++i) if(sequence[i] > root) //i坐标为右子树第一个节点break;//右子树结点中若比根结点小 直接返回falsefor (int j = i; j < end; ++j)if(sequence[j] < root) return false;bool left = true;if (i > begin) //若i==begin,则左子树为空,此时左子树为默认的trueleft = bst(sequence, begin, i - 1);bool right = true;if(i < end - 1) //若i==end-1,则右子树为一个点,此时右子树为默认的trueright = bst(sequence, i, end - 1);return left&&right;}
};

剑指offer——面试题24:二叉搜索树的后序遍历序列相关推荐

  1. 剑指Offer - 面试题33. 二叉搜索树的后序遍历序列(递归)

    1. 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜索树:5/ \2 6 ...

  2. 剑指offer面试题33. 二叉搜索树的后序遍历序列(二叉树)(递归)

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 思路 详见链接 代码 class Sol ...

  3. 剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列

    剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列2013-11-23 03:16 题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出 ...

  4. 剑指offer(C++)-JZ33:二叉搜索树的后序遍历序列(数据结构-树)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则返回 tru ...

  5. 【剑指Offer】23、二叉搜索树的后序遍历序列

      题目描述:   输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同.   解题思路:   对于后续遍历序列,序 ...

  6. 剑指offer(23)二叉搜索树的后序遍历序列

    前提:二叉搜索树的后续遍历由{左子数.右子树.根}组成,根的值小于右子树,大于左子树. 思路就是:后续遍历sequence,通过与根节点比较,找到左子树与右子树的分界点(i):如果如果分界点前面的数有 ...

  7. 面试题24 二叉搜索树的后序遍历序列

    题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 1 class Solution { 2 publ ...

  8. 剑指offer:面试题33. 二叉搜索树的后序遍历序列

    题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜 ...

  9. C#刷剑指Offer | 二叉搜索树的后序遍历序列

    [C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第289篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...

最新文章

  1. AAAI-2020 || 52篇深度强化学习accept论文汇总
  2. 采油工计算机试题库,数字化采油工试题库.doc
  3. 春节假期前5天全国快递处理量达3.65亿件 同比增长224%
  4. Golang json 解析与生成
  5. linux关闭的时候出现异常: java.net.ConnectException: 拒绝连接 (Connection refused)
  6. Servlet(2) 三个域对象
  7. SpringBoot2 Spring Cloud consul 分布式配置中心使用教程
  8. Fedora Linux 14百度云下载,Fedora Linux 14下载
  9. java-php-python-ssm制药企业人力资源管理系统计算机毕业设计
  10. 飞信2009_从飞信倒下的八个原因看运营商的复兴之路
  11. It is a distutils installed project and thus we cannot accurately determine which files belong to
  12. Vue学习笔记(一) 基础+指令+侦听器+计算属性+vue-cli
  13. RT_Thread操作系统配置环境EVN学习笔记
  14. windows运行库文件
  15. CPU温度过高有什么影响
  16. Java 如何查询当前项目Spring和SpringBoot的版本号
  17. localtime函数使用
  18. 大量的Oracle数据库视频教程提供下载
  19. Centos7:solr伪集群(SolrCloud)搭建
  20. C/C++编程笔记:C++中的isspace()及其在计算空格字符中的应用

热门文章

  1. 我的迅雷资源博客已经开通!
  2. CListCtrl,SetItemState 高亮(显示蓝色)
  3. 数字化方法基础(四)_矩阵操作
  4. who I am ?
  5. 在计算机网络中vc是,计算机网络——第一章 体系
  6. html直播动画,HTML5 直播疯狂点赞动画实现代码 附源码
  7. java 不让滚动条随着拖拽滑动_「最近项目小结」使用Vue实现一个简单的鼠标拖拽滚动效果插件...
  8. html改为php报错,**PHP, 这段嵌入html的php代码为何第15、16、17行报错?**
  9. ppt转html5 带动画_天府味道 小吃龙门阵____糖饼糖画 难以忘怀的童年趣味
  10. java pdf分页显示,java读取pdf(可分页读取)