剑指Offer--二叉搜索树的后续遍历序列
2017-05-12 22:16
302 查看
题目:
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解析:
二叉搜索树又叫二叉排序树。它的特点是,根节点左边的节点都小于根节点,根节点右边的节点都大于根节点,所以的子节点也遵循这个规律。知道这些,在解这道题目的时候,首先自己写一个二叉搜索树,将它的后续遍历序列写出来。会发现最后一个元素是根节点,而根节点会将前面的序列分为两部分,一部分全部小于根节点,一部分全部大于根节点,即两个序列为根节点的左右子树,左右子树也会遵序这个规律。所以就可以用递归的思想来不断深入,到最后叶子节点处,返回是否为二叉搜索树的后续遍历序列。public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence.length == 0 || sequence == null){//判空不要忘了 return false; } return VerifySquenceOfBST(sequence , 0 , sequence.length-1);//需要递归调用,所以这里重写了一遍该方法,方便递归参数。 } public boolean VerifySquenceOfBST(int[] a , int f , int l){ if(f>=l) return true;//递归终止 int i = l; while(i > f && a[i-1] > a[l])i--;//找到子树分界点 for(int j = i -1 ;j >= f ; --j){ if(a[j] > a[l]) return false; } return VerifySquenceOfBST(a,f,i-1)&&VerifySquenceOfBST(a,i,l-1);//左右子树进入递归 } }
相关文章推荐
- 剑指offer-题24:二叉搜索树的后续遍历序列
- 剑指offer 4.3 举例形象化问题4-二叉搜索树的后续遍历序列
- 剑指offer 二叉搜索树后续遍历序列 判断
- 【剑指Offer】面试题24:二叉搜索树的后续遍历序列
- 剑指offer-二叉搜索树的后续遍历序列
- 剑指offer 面试题24 判断二叉搜索树后续遍历序列
- 剑指offer——二叉搜索树的后续遍历序列
- 剑指offer面试题 二叉搜索树的后续遍历序列
- 剑指offer——二叉搜索树的后续遍历序列
- [剑指Offer]二叉搜索树的后续遍历序列
- 剑指offer:二叉搜索树的后序遍历序列(判断一个数组是否是二叉搜索树的后续遍历序列)
- 剑指Offer之 - 二叉搜索树的后续遍历序列
- 剑指offer-23.二叉搜索树的后序遍历序列
- 【剑指Offer面试题】 九度OJ1367:二叉搜索树的后序遍历序列
- 剑指Offer 24 二叉搜索树的后序遍历序列
- [剑指offer-1367]二叉搜索树的后序遍历序列
- 剑指Offer-33:二叉搜索树的后序遍历序列
- 剑指offer代码解析——面试题24二叉搜索树的后序遍历序列
- 剑指offer 24 二叉搜索树的后序遍历序列
- 剑指offer 24- 二叉搜索树的后序遍历序列