博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重建二叉树
阅读量:3937 次
发布时间:2019-05-23

本文共 872 字,大约阅读时间需要 2 分钟。

题目描述

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。

解答:

//import java.util.Arrays; public TreeNode reConstructBinaryTree(int [] pre,int [] in) {
// 考虑边界 if(pre.length==0) return null; TreeNode result = new TreeNode(pre[0]); if(pre.length==1) return result; int rootIndexOfIn=0; //int rootIndexOfIn = in.indexof(pre[0]); // java 没有Array 没有 indexOf() for(int i=0;i

本题暴露出来我很多基础问题:按照问题出现的先后顺序:

  1. 误以为java array有indexOf方法。实际上List才有
  2. 不熟悉java Arrays类的 copyOfRange(arr,start,end)方法:
    并且这个方法是[strat,end) 是前开后闭的,一定要知道,不然范围就会错误。。。
  3. 重要的知识不记得了,二叉数遍历的概念,但是只记得看的是浙大的数据结构,一年过去了,还是忘记了啊。。
  4. 前序遍历,就是root-left-right;中序遍历: left-root-right 后序遍历:left-right-root 也就是说,前中后是描述root节点的。
  5. 递归的思想还需要多加体会
  6. 同一个类中可以直接使用 里面的pulic,private方法,不需要实例变量
  7. 使用到了Arrays类的方法,要记得import这个类:import java.util.Arrays;

转载地址:http://mjywi.baihongyu.com/

你可能感兴趣的文章
php开发常识b_01
查看>>
PHP单例模式
查看>>
PHP项目设计
查看>>
memcache的安装及管理
查看>>
git 传输
查看>>
创建新项目
查看>>
印刷工艺- 喷墨印刷
查看>>
印刷工艺流程
查看>>
印刷业ERP启蒙
查看>>
Java8 Lambda表达式使用集合(笔记)
查看>>
Java魔法师Unsafe
查看>>
spring cloud java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
查看>>
Centos系统安装MySQL(整理)
查看>>
postgresql计算两点距离(经纬度地理位置)
查看>>
postgres多边形存储--解决 Points of LinearRing do not form a closed linestring
查看>>
postgresql+postgis空间数据库总结
查看>>
spring 之 Http Cache 和 Etag(转)
查看>>
基于Lucene查询原理分析Elasticsearch的性能(转)
查看>>
HttpClient请求外部服务器NoHttpResponseException
查看>>
springCloud升级到Finchley.RELEASE,SpringBoot升级到2.0.4
查看>>