输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。
如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
后序,最后一个为根节点;
从前遍历,到第一个大于root的为左子树,后面的到根之前都是 右子树。
只要认定的右子树没有小于root的值,就是正确的啦。
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { boolean flag = true; if(sequence.length == 0) { return false; } int root = sequence[sequence.length-1]; for(int i = 0; i < sequence.length-2; i++) { if(flag) { if(sequence[i] > root) { flag = false; } }else { if(sequence[i] < root) { return false; } } } return true; } }