【算法-java】判断该数组是不是某二叉搜索树的后序遍历的结果
2017-05-16 14:59
489 查看
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence.length==0)return false; return isSquenceOfBST(0,sequence.length-1,sequence); } public boolean isSquenceOfBST(int low,int high,int[] sequence){ /** *检查当前是不是二叉搜索树的后序遍历的结果 **/ int root =sequence[high]; int mid =high-1;//左右子树分割线,左子树high下标 if(high<=low)return true;//递归终止条件 while(sequence[mid]>root){//定位mid mid--;//从high往low定位 if(mid<low)return true;//符合二叉搜索树的后序遍历的结果 } for(int i=low;i<=mid;i++){//检查是不是否存在不是二叉搜索树的后序遍历的结果 if(sequence[i]>root)return false; } /** *递归检查是不是二叉搜索树的后序遍历的结果 **/ if(!isSquenceOfBST(low,mid,sequence)){//检查左子树 return false; } if(!isSquenceOfBST(mid+1,high-1,sequence)){//检查右子树 return false; } return true; } }
相关文章推荐
- java实现输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- Java实现:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。
- java 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 《剑指Offer》输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 剑指offer_输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- 每天学习一算法系列(9) (输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果)
- java 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 每天一算法(判断该数组是不是某二元查找树的后序遍历的结果)
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
- 【剑指offer24】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 判断一个数组是不是二叉搜索树的后序遍历
- 判断该数组是不是某二元查找树的后序遍历的结果
- 输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果
- 判断数组是不是某二叉搜索树的后序遍历
- 判断该数组是不是某二元查找树的后序遍历的结果
- 算法-判断整数序列是不是二元查找树的后序遍历结果