二叉搜索树的后序遍历序列

Posted yingpu

tags:

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

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

public boolean VerifySequenceOfBST(int[] array){
        if(array == null || array.length <=0) return false;
        int N = array.length;
        return VerifySequenceOfBST(array,0,N-1);
        
    }
    public boolean VerifySequenceOfBST(int[] array,int left,int right){
        if(left>=right){
            return true;
        }
        int root = array[right];
        //i记录比root(根节点)大的第一个元素的索引
        int i = left;
        for(;i<right-1;i++){
            if(array[i]>root) break;
        }
        for(int j=i;j<right-1;j++){
            if(array[i]<root) return false;
        }
        return VerifySequenceOfBST(array,left,i-1)&&VerifySequenceOfBST(array,i,right-1);
    }

 

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

LeetCode二叉搜索树的后序遍历序列

LeetCode二叉搜索树的后序遍历序列

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

剑指 Offer 33. 二叉搜索树的后序遍历序列(java解题)

剑指Offer对答如流系列 - 二叉搜索树的后序遍历序列

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