二叉搜索树的后序遍历序列(Java实现)
来源:互联网 发布:阿里云 搭建vpn 编辑:程序博客网 时间:2024/06/07 06:14
本题为剑指offer面试题24.
牛客网测试地址:https://www.nowcoder.com/questionTerminal/a861533d45854474ac791d90e447bafd
[编程题]二叉搜索树的后序遍历序列
- 参与人次:81730次时间限制:1秒空间限制:32768K
- 算法知识视频讲解
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
代码如下:
package go.jacob.day427;public class Demo1 {public boolean VerifySquenceOfBST(int[] sequence) {/* * 判空条件必须是两个: * |--sequence == null为true,不会执行sequence.length == 0 * |--sequence == null为false,执行sequence.length == 0不会报空指针异常 */if (sequence == null || sequence.length == 0)return false;int N = sequence.length;return VerifySquenceOfBST(sequence, 0, N - 1);}private boolean VerifySquenceOfBST(int[] sequence, int left, int right) {if (left >= right)return true;int root = sequence[right];//i记录比root(根节点)大的第一个元素的索引int i = left;for (; i < right - 1; i++) {if (sequence[i] > root)break;}//如果右子树有元素小于root,返回false;for (int j = i; j < right - 1; j++) {if (sequence[j] < root)return false;}//否则递归求解左子树和右子树return VerifySquenceOfBST(sequence, left, i - 1) && VerifySquenceOfBST(sequence, i, right - 1);}}
0 0
- 二叉搜索树的后序遍历序列java实现
- 二叉搜索树的后序遍历序列-剑指offer(java实现)
- 二叉搜索树的后序遍历序列(Java实现)
- java之二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列Java
- 剑指offer刷题之java实现的二叉搜索树的后序遍历序列
- 剑指offer--面试题24:二叉搜索树的后序遍历序列--Java实现
- 判断数组是否是二叉搜索树的后序遍历序列 JAVA实现
- 二叉搜索树的后序遍历序列(算法)
- 二叉搜索树的后序遍历序列(判断后序遍历序列是否合法)
- 二叉树------二叉搜索树的后序遍历序列
- 数据结构与算法分析笔记与总结(java实现)--二叉树20:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列(Java),复杂度O(n)解法
- 剑指Offer面试题24(Java版):二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列(java版)
- 剑指Offer:面试题24——二叉搜索树的后序遍历序列(java实现)
- 【树5】二叉搜索树的后序遍历序列
- 题目10:二叉搜索树的后序遍历序列
- 关于typedef的用法
- 接口和抽象类
- 关于 json 单引号和双引号区别--请使用双引号
- JavaWeb 入门级项目实战 -- 文章发布系统 (第三节)
- hdu 2089 不要62 数位dp入门
- 二叉搜索树的后序遍历序列(Java实现)
- google play 排行榜接入
- 二维指针malloc和free
- JSON序列化
- SSIS 包配置
- 796D Police Stations
- 线程基础(一)
- POJ 2385 Apple Catching(线性DP)
- SpringMVC 过滤器HiddenHttpMethodFilter