二叉树的后续遍历序列

题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。

取得最后一个数的值,即根节点,将这个数与前面几个数进行比较,平衡二叉树的后序遍历的话,左子树都比根节点小,如果比根节点大,说明是右子树,记下这个值,向下递归,判断是否符合平衡二叉树的要求。

public class VerifySquenceOfBST {
public boolean verifySquenceOfBST (int[] squence) {
    if (squence.length == 0) return false;
    return isTreeBST(squence,0,squence.length - 1);
}

private boolean isTreeBST(int[] squence, int start, int end) {
    if (start > end) return true;
    int i = 0;
    for(;i < end; i++) {
        if (squence[i] > squence[end]);
        break;
    }

    for (int j = i; j < end; j++) {
        if (squence[j] < squence[end]) return false;
    }

    return isTreeBST(squence, start, i-1) && isTreeBST(squence, i ,end - i);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 树的概述 树是一种非常常用的数据结构,树与前面介绍的线性表,栈,队列等线性结构不同,树是一种非线性结构 1.树的定...
    Jack921阅读 9,940评论 1 31
  • 一直以来,我都很少使用也避免使用到树和图,总觉得它们神秘而又复杂,但是树在一些运算和查找中也不可避免的要使用到,那...
    24K男阅读 11,709评论 5 14
  • 这几天开学,学校还在上课,最近也是在找工作,很多天都没有更新文章,现在补一篇二叉树的文章。 最近校招公司的笔试陆续...
    zero_sr阅读 9,409评论 0 5
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 10,615评论 0 12
  • 基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平...
    yhthu阅读 9,803评论 1 5