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

来源:互联网 发布:mysql手册中文版 pdf 编辑:程序博客网 时间:2024/05/16 14:33

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


public class Solution {    public boolean VerifySquenceOfBST(int [] sequence)    {        if(sequence == null || sequence.length == 0)            return false;        return IsTreeBST(sequence, 0, sequence.length-1);    }    public boolean IsTreeBST(int[] sequence, int begin,int end) {        if(begin >= end)            return true;        int i = begin;        for(; i < end; ++i)        {            if(sequence[i] > sequence[end])                break;        }        int j = i;        for(;j < end; ++j)        {            if(sequence[j] < sequence[end])                return false;        }        boolean left = true;        if(i > 0)            left = IsTreeBST(sequence, begin, i-1);        boolean right = true;        if(i < sequence.length-1)            right = IsTreeBST(sequence, i, end-1);        return left && right;    }}
0 0
原创粉丝点击