题目描述
代码如下:
package jianzhioffer.tree;
/** * 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 * 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 * @author hadoop * */public class VerifySquenceOfBST { public boolean VerifySquenceOfBST(int [] sequence) { if (sequence.length==1) { return true; } if (sequence.length==0) { return false; } return judge(sequence, 0, sequence.length-1); } public boolean judge(int[] a,int start,int end) { if (start>end) { return true; } int root=a[end]; int i=start; while (a[i]<root) { i++; } boolean left=judge(a, start, i-1); int j=i; while (j<end) { if (a[j]<a[end]) { return false; } j++; } boolean right=judge(a, i, end-1); return left&&right; }}