• 剑指Offer(Java版)第二十八题:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。


    /*
    输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。
    如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
    */
    //思路:
    //二叉树后序遍历数组的最后一个数为根结点,剩余数字中,
    //小于根结点的数字(即左子树部分)都排在前面,大于根结点的数字(即右子树部分)都排在后面。
    //根据遍历数组的这个特性,可以编写出一个递归函数,用于实现题目所要求的判断功能。
    public class Class28 {

    public boolean yanZhengHouXu(int[] data){
    if((data == null) || (data.length <= 0)){
    return false;
    }
    return yanZhengHouXuMain(data, 0, data.length - 1);
    }

    public boolean yanZhengHouXuMain(int[] data, int start, int end){
    if(start >= end){
    return true;
    }
    int i = start;
    //二叉树左子树节点小于根节点
    while(data[i] < data[end]){
    i++;
    }
    int j = i;
    //二叉树右子树节点大于根节点
    while(j < end){
    {
    if(data[j] < data[end]){
    return false;
    }
    j++;
    }
    }
    boolean left = yanZhengHouXuMain(data, start, i - 1);
    boolean right = yanZhengHouXuMain(data, i, end-1);

    return left && right;
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    }

    }

  • 相关阅读:
    [python] defaultdict
    [VM workstation]VM workstation 中的虚拟机连不上网络
    [Docker] docker 基础学习笔记1(共6篇)
    [python] import curses
    servlet 产生随机验证码
    JSTL标签库 sql标签
    JSTLLearning
    Ajax实现联想(建议)功能
    HDU 1241
    Servlet实现文件上传
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12509828.html
Copyright © 2020-2023  润新知