欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

常见数据结构算法--二叉树的后序遍历序列

程序员文章站 2022-07-10 17:33:42
package common;/** * @author : zhaoliang * @program :newCoder * @description : 二叉树的后序遍历序列 * @create : 2020/11/27 19:10 */public class VerifySquenceOfBST { //输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。 // 假设输入的数组的任意两个数字都互不相同。 p...
package common;

/**
 * @author : zhaoliang
 * @program :newCoder
 * @description : 二叉树的后序遍历序列
 * @create : 2020/11/27 19:10
 */
public class VerifySquenceOfBST {
    //输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。
    // 假设输入的数组的任意两个数字都互不相同。
    public boolean VerifySquenceOfBST(int[] array){
        if(array==null || array.length==0)return false;
        int start=0, end = array.length-1;
        return verify(array,start,end);
    }

    private boolean verify(int[] array, int start, int end) {
        if(end - start <=1)return true;
        int rootVal = array[end];
        int curIndex = start;
        while(array[curIndex] <= rootVal && curIndex <end){
            curIndex++;
        }
        for (int i = curIndex; i <end ; i++) {
            if(array[i] < rootVal){
                return false;
            }
        }
        return verify(array,start,curIndex-1) && verify(array,curIndex,end-1);
    }
}

本文地址:https://blog.csdn.net/sinat_40968110/article/details/110244848