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

Posted itxiaolei

tags:

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

题目描述

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

代码示例

public class Offer24 {
    public static void main(String[] args) {
        int[] postSeq = {1, 3, 2};
        Offer24 testObj = new Offer24();
        System.out.println(testObj.verifyPostSeqOfBST(postSeq));
    }

    public boolean verifyPostSeqOfBST(int[] seq) {
        if (seq == null || seq.length == 0)
            return false;
        return verifyPostSeqOfBST(seq, 0, seq.length - 1);
    }

    private boolean verifyPostSeqOfBST(int[] seq, int left, int right) {
        if (right - left <= 1) {
            return true;
        }
        int rootVal = seq[right];
        int curIndex = left;
        while (curIndex < right && seq[curIndex] <= rootVal)
            curIndex++;
        for (int i = curIndex; i < right; i++) {
            if (seq[i] < rootVal) {
                return false;
            }
        }
        return verifyPostSeqOfBST(seq, left, curIndex - 1)
                && verifyPostSeqOfBST(seq, curIndex, right - 1);
    }
}

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

剑指OFFER----面试题33. 二叉搜索树的后序遍历序列

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

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

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

剑指offer 面试33题

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