二叉搜索树的后序遍历序列-剑指offer(java实现)
来源:互联网 发布:手机淘宝怎么请人代付 编辑:程序博客网 时间:2024/05/20 03:36
问题描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
二叉搜索树特点:对任意一个结点,其值大于左子树所有结点的值,小于右子树所有结点的值。注:剑指offer认为空树返回false
java程序如下:
import java.util.Arrays;public class Solution13 {public boolean VerifySquenceOfBST(int [] sequence) { int len = sequence.length; boolean res = m(sequence,len); return res; }public boolean m(int[] sequence,int len){if(sequence==null||len<=0){return false;}int root = sequence[len-1];int index=0;while(sequence[index]<root){ //左子树中结点的值小于根节点的值index++;}for(int i=index+1;i<len;i++){ //右子树中结点的值大于根节点的值if(sequence[i]<root){return false;}}boolean left=true;if(index>0){left=m(sequence,index);}boolean right=true;if((index+1)<len){right=m(Arrays.copyOfRange(sequence,index,sequence.length),len-1-index);}return left&&right;}public static void main(String[] args){int [] a={7,4,6,5};Solution13 s = new Solution13();boolean res=s.VerifySquenceOfBST(a);System.out.println(res);}}程序中用到了递归以及Arrays类的方法。
0 0
- 二叉搜索树的后序遍历序列-剑指offer(java实现)
- 剑指offer刷题之java实现的二叉搜索树的后序遍历序列
- 剑指offer--面试题24:二叉搜索树的后序遍历序列--Java实现
- 剑指Offer面试题24(Java版):二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指Offer-->二叉搜索树的后序遍历序列
- 《剑指offer》二叉搜索树的后序遍历序列
- 【剑指Offer】二叉搜索树的后序遍历序列
- 剑指offer--二叉搜索树的后序遍历序列
- 剑指 offer:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列||剑指offer
- 剑指offer-二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- 剑指offer 二叉搜索树的后序遍历序列
- reactJS之react-route
- 手动启动libreOffice服务
- 后台容器杂学
- 数据挖掘期刊、论坛、博客、数据集
- POS恶意软件,可回传信用卡号及个人资料
- 二叉搜索树的后序遍历序列-剑指offer(java实现)
- 学习一下C#中常用集合和数组的区别,虽然很基础,但感觉很实用
- ZIGBEE 低功耗的实现 (cc2530)
- 逆波兰算法源码
- 易企秀,微商宣传神器,分享一下!
- 关于linux中的Ctrl+C,Ctrl+Z,Ctrl+D
- Ten Tips to Improve Team Communication
- String StringBuilder StringBuffer 对比 总结得非常好
- 解决svn客户端版本冲突的python代码