剑指offer--二叉树的后序遍历

Posted 蒋闯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer--二叉树的后序遍历相关的知识,希望对你有一定的参考价值。

思路:对于一个二叉树的后序遍历序列来说,最后一个数一定是根节点,然后前面的数中,从最开始到第一个大于根节点的数都是左子树中的数,而后面到倒数第二个数应该都是大于根节点的,是右子树,如果后面的数中有小于根节点的,那么说明这个序列不是二叉搜索树的后序遍历序列。

public class JudgeHouxubainli {
  public static void main(String[] args) {
    int[] array = {4,8,6,12,16,14,10};
    boolean result = false;
    result = judge(array);
    System.out.println(result);
  }
  private static boolean judge(int[] array){
    if(array.length == 1){
      return true;
    }
    if(array == null || array.length == 0){
      return false;
    }
    int root = array[array.length - 1];
    int i = 0;
    for(; i < array.length-1; ++i){
      if(array[i]>= root){
        break;
      }
    }
    int j = i;
    for(; j< array.length-1; ++j){
      if(array[j] < root){
        return false;
      }
    }
    judge(Arrays.copyOfRange(array, 0, i));
    judge(Arrays.copyOfRange(array, i, array.length-1));
    return true;
  }

}

以上是关于剑指offer--二叉树的后序遍历的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer 二叉树的后序遍历序列

二叉搜索树的后序遍历序列(剑指offer-23)

二叉搜索树的后序遍历序列-剑指Offer

剑指offer二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列 (剑指offer)

《剑指offer》总结三 之二叉树