zoukankan      html  css  js  c++  java
  • 剑指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

    }

    }

  • 相关阅读:
    Java中equals与==异同
    CGI与WSGI
    Javazh中static的简单理解
    MySQL 4.1/5.0/5.1/5.5各版本的主要区别
    php生成随机密码的几种方法
    phpmyadmin里MySQL字符集:cp1252 West European (latin1) ,解决乱码问题
    GoogleMap API 离线版
    [转]为前端开发人员制作的 Chrome 扩展 jsbeautifier
    Google Map Tile 下载脚本
    Google 地图 API 参考
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12509828.html
Copyright © 2011-2022 走看看