二叉搜索树的后续遍历序列
2017-09-13 10:13
267 查看
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍
历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
public class Solution { public static boolean VerifySquenceOfBST(int [] sequence) { if(sequence==null || sequence.length==0){ return false; } int i=0; for(;i<sequence.length;i++){ if(sequence[i]>sequence[sequence.length-1]){ break; } } int j=i; for(;j<sequence.length;j++){ if(sequence[j]<sequence[sequence.length-1]){ return false; } } boolean left=true,right=true; if(i>0){ left=helper(sequence,0,i); } if(j<sequence.length){ right=helper(sequence,i,sequence.length-1-i); } if(left && right){ return true; }else{ return false; } } public static boolean helper(int[] sequence,int start, int end){ int i=start; for(;i<end;i++){ if(sequence[i]>sequence[end-1]){ break; } } int j=i; for(;j<end;j++){ if(sequence[j]<sequence[end-1]){ return false; } } boolean left=true,right=true; if(i>start){ if(i==end){ i=end-1; } left=helper(sequence,start,i); } if(j<end){ if(j==start){ j=start+1; } right=helper(sequence,i,end); } if(left&& right){ return true; }else{ return false; } } }
历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
相关文章推荐
- 二叉搜索树的后续遍历序列
- 二叉搜索树的后续遍历序列
- 20、二叉搜索树的后续遍历序列
- 剑指offer:二叉搜索树的后序遍历序列(判断一个数组是否是二叉搜索树的后续遍历序列)
- 剑指Offer之 - 二叉搜索树的后续遍历序列
- 剑指offer-题24:二叉搜索树的后续遍历序列
- 4000 面试题:二叉搜索树的后续遍历序列
- 剑指offer 4.3 举例形象化问题4-二叉搜索树的后续遍历序列
- 剑指offer 二叉搜索树后续遍历序列 判断
- 二叉搜索树的后续遍历序列
- 剑指offer-二叉搜索树的后续遍历序列
- 剑指offer系列之二十二:二叉搜索树的后续遍历序列
- 剑指offer面试题 二叉搜索树的后续遍历序列
- 二叉搜索树的后续遍历序列
- 【剑指Offer】面试题24:二叉搜索树的后续遍历序列
- java 二叉搜索树的后续遍历序列
- 判断二叉搜索树的后续遍历序列
- [剑指Offer]二叉搜索树的后续遍历序列
- 判断一个序列是否为某二叉搜索树的后续遍历结果
- 二叉搜索树的后续遍历序列