剑指offer---重建二叉树
来源:互联网 发布:网络维护外包合同 编辑:程序博客网 时间:2024/06/08 04:38
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
java
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public TreeNode reConstructBinaryTree(int[] pre,int[] in) { if (pre == null || pre.length == 0 || in == null || in.length == 0) { return null; } return reBuild(pre, 0, pre.length - 1, in, 0, in.length - 1); } private TreeNode reBuild(int[] pre, int preStart, int preEnd, int[] in, int inStart, int inEnd) { if (preStart > preEnd || inStart > inEnd) { return null; } TreeNode root = new TreeNode(pre[preStart]); int index = inStart; while (index <= inEnd && pre[preStart] != in[index]) { index++; } int length = index - inStart; int leftEnd = preStart + length; if (length > 0) { root.left = reBuild(pre, preStart + 1, leftEnd, in, inStart, index - 1); } if (length < preEnd - inStart) { root.right = reBuild(pre, leftEnd + 1, preEnd, in, index + 1, inEnd); } return root; }}
阅读全文
0 0
- [剑指offer]重建二叉树
- 【剑指offer】重建二叉树
- 剑指offer--重建二叉树
- 剑指offer---重建二叉树
- 剑指Offer-重建二叉树
- 剑指offer:重建二叉树
- 剑指offer-重建二叉树
- 《剑指offer》重建二叉树
- 【剑指Offer】重建二叉树
- 剑指offer-重建二叉树
- 《剑指offer》-重建二叉树
- 剑指offer 重建二叉树
- 剑指offer:重建二叉树
- 【剑指offer】重建二叉树
- 剑指offer 重建二叉树
- [剑指offer]重建二叉树
- 剑指offer--重建二叉树
- 《剑指offer》重建二叉树
- 搭建SSM常用配置jdbc.properties
- ViewPager加载fragment
- create-react-app结合node express框架搭建react项目开发环境
- 整理MAC下Eclipse的常用快捷键
- Linux查看内存命令及其对命令显示的解释
- 剑指offer---重建二叉树
- MySQL(二)BinLog恢复数据
- TCP send函数 阻塞发送数据详解
- 使用java编程猜数字游戏
- Android使用自定义控件实现加载网络图片无限轮播
- IDEA @Override is not allowed when implementing interface method
- HTML 是浏览器变窄 部分div变化 所用方法
- P2756 飞行员配对方案问题(二分图??网络流??)
- Python基础操作