二叉搜索树的后序遍历序列
题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
实现语言:Java
public class Solution { public boolean VerifySquenceOfBST(int [] arr) { int size=arr.length; if(size==0){ return false; } if(size==1){ return true; } return helper(arr,0,size-1); } private boolean helper(int[] arr,int start,int end){ if(start>=end){ return true; } int i=end; while(i>start&&arr[i-1]>arr[end]){ --i; } for(int j=start;j<i;++j){ if(arr[j]>arr[end]){ return false; } } return helper(arr,start,i-1)&&helper(arr,i,end-1); } }