编程语言
首页 > 编程语言> > 剑指Offer:二叉搜索树的后序遍历序列(JAVA实现)

剑指Offer:二叉搜索树的后序遍历序列(JAVA实现)

作者:互联网

原题

考点:
栈、数、递归
二叉搜索树、后序遍历

思路:

  1. 每次将二叉树分割成两部分,左子树与右子树
  2. 如果节点数量<=1,则返回True
  3. 如果节点数量不小于1,就要判断该子树是否符合后序遍历、的特点

主要有两个判断点:
p == j,用于判断是否是后序遍历
recur(),用于判断子树

class Solution {
    public boolean verifyPostorder(int[] postorder) {
        return recur(postorder,0,postorder.length-1);
    }

    public boolean recur(int[] postorder,int start,int end){
        if(start >= end){
            return true;
        }
        int p = start;
        while(postorder[p] < postorder[end]){
            p++;
        }
        int m = p;
        while(postorder[p] > postorder[end]){
           p++; 
        }
        return p == end && recur(postorder,start,m-1) && recur(postorder,m,end-1);
    }
}

标签:遍历,end,recur,Offer,int,二叉,start,JAVA,postorder
来源: https://blog.csdn.net/qq_26558047/article/details/113803533