1. 程式人生 > >劍指offer{面試題24:二叉搜尋樹的後序遍歷序列}

劍指offer{面試題24:二叉搜尋樹的後序遍歷序列}

這個題似曾相識,之前劍指offer有一道題是判斷該子樹是否是樹的一部分,有異曲同工之妙,看到這種題,上倆就應該想遞迴。

public class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        if(sequence.length == 0)
            return false;
        if(sequence.length == 1)
            return true;
        return judge(sequence, 0, sequence.length-1);
    }
    public boolean judge(int [] sequence, int start, int root){
        if(start >= root)
            return true;
        int i = start;
        while(i < root && sequence[i] < sequence[root])
            i++;
        for(int j=i; j<root; j++){
            if(sequence[j]<sequence[root])
                return false;
        }
        return (judge(sequence, start, i-1)) && (judge(sequence, i, root-1));
    }
}