手动写一个样例即可发现:
BST后序遍历序列的最后一个是根节点,根节点把序列分为左右子树,左子树是序列前部分,数值都比根节点小,右子树是序列后部分,数值都比根节点大。如此分析下来,递归解决。

BST后序遍历序列:[l,r]
左子树序列:[l,p]
右子树序列:[q,r-1]

public class Solution {

    public boolean jude(int[] str, int l, int r) {
        if (r <= l) {
            return true;
        }

        int p = r - 1, q = l;
        for (int i = l; i < r; i++) {
            if (str[i] > str[r]) {
                p = i - 1;
                break;
            }
        }
        for (int i = r - 1; i >= 0; i--) {
            if (str[i] < str[r]) {
                q = i + 1;
                break;
            }
        }

        if (p + 1 == q) {
            return jude(str, l, p) && jude(str, q, r-1);
        }
        return false;
    }

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