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

题目:输入一个数组,判断这个数组是不是一个二叉搜索树的后序遍历的结果。

solution:我们知道后序遍历序列的最后一个item是根节点,如果确实是二叉搜索树的后序遍历结果,那么在[0,N-2]中一定存在一个位置k,满足:

[0,K]的元素都是小于item的,[K+1,N-1]的元素都是大于item的。如果不存在这样的节点,那么说明不是二叉搜索树的后序遍历的结果。

isValid-postorder-travel(int [] nums,int start,int end):

  if(start>=end) return true;

  int mid = nums[end];

  int index = start;

  while(index<=end&&nums[index]<mid) index++;

  int midindex = index;

  while(index<=end&&nums[index]>mid) index++;

  if(nums[index]<=mid) return false;

  boolean res1 = isValid-postorder-travel(nums,start,midindex-1);

  if(res1==false)  return false;

  boolean res2 = isValid-postorder-travel(nums,midindex,end-1);

  return res2;

转载于:https://www.cnblogs.com/deepblueme/p/4781838.html

[剑指offer] 二叉搜索树的后序遍历序列相关推荐

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

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

  2. 剑指offer——二叉搜索树的后序遍历序列

    二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 这里遇到的问题就是,传递的子数组怎 ...

  3. [剑指offer]二叉搜索树的后序遍历数列

    [剑指offer]二叉搜索树的后序遍历数列 剑指offer-二叉搜索树的后序遍历序列 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 fals ...

  4. 剑指offer 二叉搜索树的后序遍历

    题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. ...

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

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

  6. 【LeetCode】剑指 Offer 33. 二叉搜索树的后序遍历序列

    [LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 文章目录 [LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 package offer;public cl ...

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

    剑指offer--面试题24:二叉搜索树的后序遍历序列 Solution1: 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二 ...

  8. 剑指offer之二叉搜索树的后序遍历序列

    剑指offer之二叉搜索树的后序遍历序列 欢迎关注作者博客 简书传送门 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个 ...

  9. 剑指 Offer 33. 二叉搜索树的后序遍历序列

    剑指 Offer 33. 二叉搜索树的后序遍历序列 原始题目链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian- ...

最新文章

  1. 【Java】牛客网 删除链表中重复的结点
  2. python如何读取数据集_如何在Python中读取通用数据格式(CDF)
  3. CMPB 2021|U-Net:又一魔改U-Net应用于腹部肝脏分割任务!
  4. 0基础学python难吗-0基础学武汉Python开发课程有多难?该怎么入门?
  5. 1031 Hello World for U (20 分)【难度: 一般 / 知识点: 找规律】
  6. 户外私密Party| 在大峡谷中聊点平时不能聊的产品干货(报名结束)
  7. leetcode60.第k个排列java题解
  8. SpringBoot(入门)
  9. 力扣226-翻转二叉树(C++,附思路)
  10. 二叉树后序遍历_二叉树后序遍历非递归实现
  11. MANIFEST.MF
  12. self计算机语言,python中self在函数中如何使用
  13. 23-新建maven 项目
  14. 【虎牙直播源】浏览器抓取真实直播源地址(纯前端JS解析源码)
  15. Word转PDF表格边框横线丢失
  16. Guice集成Properties配置
  17. z变换判断稳定性和因果性_试题库 - 7:z变换 -
  18. 7个用于开源网络情报渗透测试工作的热门OSINT工具
  19. Open Street Map—2022年道路数据
  20. uni-app 从本地项目选择图片或使用相机拍照及图片预览

热门文章

  1. 一个web蠕虫的简单实现
  2. 090613 今天做了一个软件没搞定的RAID5
  3. 谈论源码_6,000名自由职业者谈论金​​钱,幸福和对未来的希望
  4. (C++)判断一个序列是non-increasing/non-decreasing还是两者都不的两个方法
  5. UI培训分享:如何提升自己的UI设计能力
  6. 分享一个电视节目API接口PHP调用代码
  7. [20180412]订阅+镜像切换
  8. JavaEE 银联支付之手机控件支付-消费类交易
  9. Java EE 开发环境搭建
  10. Oracle与JCP执行委员会分享了他们的Java EE策略