二叉搜索树的后序遍历序列
来源:互联网 发布:linux yum jdk 1.8 编辑:程序博客网 时间:2024/05/29 15:15
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
解题思路
二叉搜索树具有左孩子小于当前节点,右孩子大于当前节点的性质,后序遍历及左右根,因而后序遍历序列中的最后一个节点即为根节点,然后对前面的节点进行遍历,小于根节点的属于左子树,大于根节点的属于右子树,找到分界点,如果在分界点右侧存在大于根节点的节点那么这个遍历序列不可能是二叉搜索树的遍历序列。进行递归调用判断左子树和右子树。
public class erchashudehouxubianlixulie { public boolean isBackSequence(int[] sequence, int start, int end) { if (start >= end) return true; int root = sequence[end]; int index = 0; while (sequence[index] < root) index++; for (int i = index; i < end - 1; i++) { if (sequence[i] < root) return false; } return isBackSequence(sequence, start, index - 1) && isBackSequence(sequence, index, end - 1); } public boolean VerifySquenceOfBST(int[] sequence) { if (sequence == null || sequence.length == 0) return false; return isBackSequence(sequence, 0, sequence.length - 1); }}
阅读全文
0 0
- 二叉树------二叉搜索树的后序遍历序列
- 【树5】二叉搜索树的后序遍历序列
- 题目10:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 1367:二叉搜索树的后序遍历序列 @jobdu
- 二叉搜索树的后序遍历序列
- Q24:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- Android中的Intent
- clipboard.js基本使用
- SVM原理
- Learning Tensorflow (4)
- 一个星期三的下午
- 二叉搜索树的后序遍历序列
- 自定义annotation在Android中的应用
- 国家雷霆出击整治网络内容平台,企业需初心自持
- 完美字符串
- 栈的应用——表达式求值
- Android AIDL Binder框架浅析
- MySQL的引擎之MyISAM和InnoDB
- 看完这,才明白要学的东西还很多
- Mysql之基于日志主从复制