二叉搜索树的后序遍历序列
2016-04-19 00:05
477 查看
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
解法是递归判断,先找根节点,划分左右子树递归求解。边界需要特殊考虑。
AC代码:
解法是递归判断,先找根节点,划分左右子树递归求解。边界需要特殊考虑。
AC代码:
public class Solution { public boolean VerifySquenceOfBST(int[] sequence) { if(sequence == null || sequence.length <= 0) return false; int len = sequence.length; return solve(sequence, 0, len-1); } public boolean solve(int[] sequence, int start, int end) { if(start == end) return true; int root = sequence[end]; //System.out.println(root); int index = start; for(; index < end; index ++) { if(sequence[index] > root) break; } for(int j=index; j<end; j++) { if(sequence[j] < root) return false; } boolean left = true; if(index > start) left = solve(sequence, start, index-1); boolean right = true; if(index < end) right = solve(sequence, index, end-1); return (left && right) ; } }
相关文章推荐
- Spring 获取propertise文件中的值
- ASP.NET中CheckBoxList复选框列表控件详细使用方法
- ASP.NET中DropDownList下拉框列表控件绑定数据的4种方法
- ASP.NET中FileUpload文件上传控件应用实例
- yii2中的rules 自定义验证规则详解
- ThinkPHP中where()使用方法详解
- ThinkPHP中limit()使用方法详解
- ThinkPHP中order()使用方法详解
- 又拍云异步上传实例教程详解
- Python实现文件复制删除
- python安装与使用redis的方法
- python实现域名系统(DNS)正向查询的方法
- python实现简单socket通信的方法
- Python自动化部署工具Fabric的简单上手指南
- SQL Server 2016里的sys.dm_exec_input_buffer的问题
- SQL Server删除表及删除表中数据的方法
- 浅析JavaScript中浏览器的兼容问题
- jQuery实现选项联动轮播效果【附实例】
- Jquery实现的简单轮播效果【附实例】
- javascript实现简单计算器效果【推荐】