剑指offer,二叉搜索树的后序遍历序列
来源:互联网 发布:麒麟linux系统下载 编辑:程序博客网 时间:2024/06/10 02:41
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
解题思路:根据BST后序的特点,最后节点为跟节点,前面都小,后面都大,然后找到分割点,在分别判断两边是否满足。
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence == null || sequence.length == 0) return false; return verify(sequence, 0, sequence.length-1); } public boolean verify(int[] sequence, int start, int end){ if(sequence == null || sequence.length == 0) return false; if(start > end) return true; int root = sequence[end]; int i = start; for(; i < end; i++){ if(sequence[i] > root) break; } int j = i; for(;j < end; j++){ if(sequence[j] < root) return false; } boolean left = true; left = verify(sequence, start, i-1); boolean right = true; right = verify(sequence, i, end-1); return left && right; }}
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence == null || sequence.length == 0) return false; return verify(sequence, 0, sequence.length-1); } public boolean verify(int[] sequence, int start, int end){ if(start > end) return true; int pivot = end; int root = sequence[end]; for(int i = start; i < end; i++){ if(sequence[i] > root){ pivot = i; break; } } for(int i = pivot; i < end; i++){ if(sequence[i] < root) return false; } return verify(sequence, start, pivot-1) && verify(sequence, pivot, end-1); }}
0 0
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指Offer-->二叉搜索树的后序遍历序列
- 《剑指offer》二叉搜索树的后序遍历序列
- 【剑指Offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指 offer:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列||剑指offer
- 剑指offer-二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- [剑指offer]二叉搜索树的后序遍历序列
- 《剑指offer》-二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- c运算符优先级总结
- IOS学习之旅之4 UITextField对键盘的控制
- 数据库的多表设计及复杂查询
- centos 下solr配置IK 分词器
- Justinmind Pro 7.6 for Windows / Mac OS X 简体中文 最新全汉化 最好的 APP 原型设计工具
- 剑指offer,二叉搜索树的后序遍历序列
- 注解Annotation
- codeforces316G3——Good Substrings
- avfoundataion框架使用
- 【PAT】A1043. Is It a Binary Search Tree (25)
- Codeforces Round #384 (Div. 2)D(树形dp,dfs)
- 递归与尾递归
- 【PAT】 A1005. Spell It Right (20)
- maven WEB项目启动没问题访问页面就报错:org.apache.jasper.JasperException: Unable to compile class for JSP