二叉搜索树的后序遍历序列 --剑指offer
Posted nlw-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉搜索树的后序遍历序列 --剑指offer相关的知识,希望对你有一定的参考价值。
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
和之前做的二叉搜素树的中序遍历有相似之处
这个题的思路也是借助二叉搜素树的特性来做。
找到根结点,然后从头遍历直到找到比这个点大的点 左边的为左子树 右边的右子树,然后遍历右子树 如果有比这个小的 就不符合 返回false
然后继续递归处理左右子树
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence == null || sequence.length==0){ return false; } return judge(sequence,0,sequence.length-1); } public boolean judge(int[] sequence,int left,int right){ if(left >= right){ return true; } while(sequence[left] < sequence[right]){ left ++; } for(int i=left+1;i < right;i ++){ if(sequence[i] < sequence[right]){ return false; } } return judge(sequence,0,left-1) && judge(sequence,left,right-1); } }
以上是关于二叉搜索树的后序遍历序列 --剑指offer的主要内容,如果未能解决你的问题,请参考以下文章