利用单调栈判断二叉搜索树的后序遍历序列
假设二叉搜索树长这样,他的异端前序遍历应该是
[5,6,2,3,1]
现在如果给出一个这样的数组,如何重建这课二叉搜索树?
首先
5
\
6
然后来了2, 递增栈会一直递增, 6,5
这时候6,5全部被弹出,压入2, 2的父亲是上一个被弹出的5
5
/ \
2 6
然后来了
5
/ \
2 6
\
3
最后是1,
5
/ \
2 6
/ \
1 3
所以,根据异端先根遍历可以得到一颗二叉搜索树
只要保证左子树比根节点小就行了
AC代码
class Solution {
public:bool verifyPostorder(vector<int>& postorder) {stack<int> stk;int len = postorder.size();int peek = INT_MAX;for (int i = len - 1; i >= 0; i--){int num = postorder[i];if (num > peek) return false;while (!stk.empty() && num < stk.top()){peek = stk.top();stk.pop();}stk.push(num);}return true;}
};
结果
利用单调栈判断二叉搜索树的后序遍历序列相关推荐
- 剑指offer:面试题33. 二叉搜索树的后序遍历序列
题目:二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果.如果是则返回 true,否则返回 false.假设输入的数组的任意两个数字都互不相同. 参考以下这颗二叉搜 ...
- [剑指offer] 二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列 P157 题目:输入一个数组,判断这个数组是不是一个二叉搜索树的后序遍历的结果. solution:我们知道后序遍历序列的最后一个item是根节点,如果确实是二叉搜索树的后序 ...
- 剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列
剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列2013-11-23 03:16 题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出 ...
- C#刷剑指Offer | 二叉搜索树的后序遍历序列
[C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第289篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...
- 剑指offer——二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 这里遇到的问题就是,传递的子数组怎 ...
- 剑指offer——面试题24:二叉搜索树的后序遍历序列
剑指offer--面试题24:二叉搜索树的后序遍历序列 Solution1: 二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二 ...
- 剑指offer之二叉搜索树的后序遍历序列
剑指offer之二叉搜索树的后序遍历序列 欢迎关注作者博客 简书传送门 题目 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个 ...
- 剑指 Offer 33. 二叉搜索树的后序遍历序列
剑指 Offer 33. 二叉搜索树的后序遍历序列 原始题目链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-hou-xu-bian- ...
- 23.二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列 题目链接 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 二叉搜索树 二 ...
最新文章
- 零基础入门学习Python(31)-异常处理2-try语句
- ps修改dds贴图_「干货」喜爱3D游戏动漫建模的你,必备的次世代游戏贴图技巧...
- CSS结构的基础认知
- python-函数的注释
- python鼠标右键检测按钮_如何检测右键单击+左键单击
- 【飞控理论】从零开始学习Kalman Filters之一:Kalman Filters的常见用途、什么是状态观测器?
- 福建工程学院寒假作业第一周G题
- Linux操作Oracle(7)—连接Oracle12C 或 OracleRac 出现 ORA-28040: No matching authentication protocol,没有匹配的验证协议
- c#的chart标题_c#关于chart控件的使用方法
- 【STM32】标准库 菜鸟入门教程(1)初识最小系统
- 学生上课睡觉班主任怎么处理_学生上课睡觉,老师该怎么处理?
- 【Android安全】Android root原理及方案 | Magisk原理
- 网站使用国外服务器越来越卡、越来越慢的原因
- Js验证身份证是否正确
- QPushButton禁用状态文字变形变粗
- 猛犸Winform分页控件
- Unity游戏开发:文字冒险游戏项目实战
- 汤臣倍健创业25周年,宣布公司未来3年四个战略重点
- (附源码)计算机毕业设计SSM幼儿园管理系统
- IEC61850笔记--IEC61850应用入门(一)
热门文章
- Screen OS 6.0 学习笔记一
- 关键词与关键词之间的相关度计算
- 分布式锁的几种实现方式
- javascript正则表达式小结
- 方法对象java final关键字的用法
- Math.ceil(),Math.floor()与Math.round()三个函数的定义。
- 【转载】[Windows 8]Hello Windows 8 - Windows 8 Developer Preview搶先預覽
- Linux内核源代码分析-第三章 内核体系结构概述-1
- Regex入门(一)
- 利用Vlan控制与隔离广播风暴