剑指offer---2、二叉搜索树的后序遍历序列
剑指offer---2、二叉搜索树的后序遍历序列
一、总结
一句话总结:
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
认真看题:注意题目中是二叉搜索树,二叉搜索树就有二叉搜索树的那些规律
1、二叉搜索树的后序遍历序列 的解题思路是什么?
BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后序序列。完美的递归定义 : ) 。
2、二叉树的问题的注意事项是什么?
递归:一般是 递归 来做
增一个函数:一般要重新写一个函数来做递归
二、内容在总结中
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
参考代码:java
class Solution {
bool judge(vector<int>& a, int l, int r){
//只有一个元素的时候
if(l >= r) return true;
//找右子树
int i = r;
while(i > l && a[i - 1] > a[r]) --i;
//判断左子树
for(int j = i - 1; j >= l; --j) if(a[j] > a[r]) return false;
//分别判断左右子树
return judge(a, l, i - 1) && (judge(a, i, r - 1));
}
public:
bool VerifySquenceOfBST(vector<int> a) {
if(!a.size()) return false;
return judge(a, 0, a.size() - 1);
}
};
剑指offer---2、二叉搜索树的后序遍历序列的更多相关文章
- 《剑指offer》二叉搜索树的后序遍历序列
本题来自<剑指offer> 二叉搜索树的后序遍历序列 题目: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字 ...
- 剑指Offer:二叉搜索树的后序遍历序列【33】
剑指Offer:二叉搜索树的后序遍历序列[33] 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. ...
- 剑指 Offer 33. 二叉搜索树的后序遍历序列 + 根据二叉树的后序遍历序列判断对应的二叉树是否存在
剑指 Offer 33. 二叉搜索树的后序遍历序列 Offer_33 题目详情 题解分析 本题需要注意的是,这是基于一颗二叉排序树的题目,根据排序二叉树的定义,中序遍历序列就是数据从小到大的排序序列. ...
- 剑指 Offer 33. 二叉搜索树的后序遍历序列
剑指 Offer 33. 二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. ...
- 【剑指Offer】二叉搜索树的后序遍历序列 解题报告(Python)
[剑指Offer]二叉搜索树的后序遍历序列 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervi ...
- 【剑指offer】二叉搜索树的后序遍历序列
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26092725 剑指offer上的第24题,主要考察递归思想,九度OJ上AC. 题目描写叙述 ...
- 【Java】 剑指offer(33) 二叉搜索树的后序遍历序列
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如 ...
- Go语言实现:【剑指offer】二叉搜索树的后序遍历序列
该题目来源于牛客网<剑指offer>专题. 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. Go ...
- 剑指Offer 23. 二叉搜索树的后序遍历序列 (二叉搜索树)
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 题目地址 https://www.nowcoder ...
- [剑指offer] 23. 二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 思路: 解法一:递归 二叉搜索树,后序遍历的数组中 ...
随机推荐
- linux c(一)Helloworld
终端的屏幕上输入命令如下: 使用vi helloworld.c打开helloworld.c文件,写下如下代码:
- SSH known_hosts / authorized_keys
参考: http://blog.sina.com.cn/s/blog_148a693f10102vj8m.html 什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用 ...
- thinkphp5 图片上传七牛云
<?php namespace app\cxc\controller; use Qiniu\Auth; use Qiniu\Storage\UploadManager; use think\Co ...
- VMware 安装CenterOS
虚拟机安装CenterOS 简介:在VMware里安装Linux虚拟机,这里使用的是(Center OS 6.9). 一.准备工作: 安装 VMware Workstation Pro,很简单不哔哔了 ...
- 【lua学习笔记】——在sublime中配置Lua运行环境
一.让Sublime可以运行lua脚本 打开sublime 选择tools-->Build System-->New Build System 在新出现的文件中输入如下内容: { &q ...
- Mysql create constraint foreign key faild.trouble shooting method share
mysql> create table tb_test (id int(10) not null auto_increment primary key,action_id int(10) not ...
- generate ascii table
$ cat ascii.sh dec_count=0 while [ $dec_count -lt 256 ] do echo -e "\x$(echo "ibase=10;oba ...
- python学习笔记:目录结构
"项目目录结构"其实也是属于"可读性和可维护性"的范畴. 目录组织方式 关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构.在Sta ...
- RedisTemplate序列号自增id(当前日期+序列号)
话不多上,直接上码 public class TestService { @Resource RedisTemplate<String, Object> redisTemplate; pu ...
- Pytest conftest共享数据及不同层次共享
数据共享:在 conftest.py配置里写方 法可以实现数据共享, 不需要import导入.可 以跨文件共享 1.建立一个新的文件,文件名必须叫"conftest.py",然后写 ...