《剑指》6
来源:互联网 发布:av淘宝2017在线 编辑:程序博客网 时间:2024/06/03 17:39
题目:给定一颗二叉树的前序和中序遍历结果,重构该二叉树,并输入其头结点
package offer;public class offer6_ReBuildTree { /** * 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树,并输出其头结点。 * 假设输入的两种遍历结果中都不含重复的数字 * @param args */ public static void main(String[] args) { int[] pre = {1,2,3,4,5,6,7}; int[] in = {3,2,4,1,6,5,7}; TreeNode root = offer6_ReBuildTree.reConstructBinaryTree(pre,in); } public static TreeNode reConstructBinaryTree(int [] pre,int [] in) { if(pre == null || in == null){ return null; } TreeNode root = reBuildTree1(pre, 0, pre.length-1, in, 0, in.length-1); return root; } /** * 第一种 * @param pre * @param preStart * @param preEdn * @param in * @param inStart * @param inEdn * @return */ public static TreeNode reBuildTree1(int[] pre,int preStart,int preEdn,int[] in,int inStart,int inEdn){ if(inStart > inEdn || preStart>preEdn){ return null; } TreeNode node = new TreeNode(pre[preStart]); preStart++; while(in[inStart] != node.val && inStart<inEdn){ inStart++; } node.left = reBuildTree1(pre, preStart, inStart, in, preStart-1,inStart); node.right = reBuildTree1(pre, inStart+1, pre.length-1, in, inStart+1, in.length-1); return node; } public static class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() { } TreeNode(int x) { val = x; } }}
0 0
- 《剑指》6
- 剑指offer chapter 6
- 剑指offer-6
- 剑指Offer-6
- 剑指OFFER(6)
- 剑指offer面试题6
- 剑指offer 面试题6
- 剑指offer-面试题6
- 【面试题】剑指offer 6
- 剑指offer:6-重建二叉树
- 剑指offer 6- 重建二叉树
- 剑指offer 6 重建二叉树
- 剑指Offer系列---(6)替换空格
- 剑指Offer-6-重建二叉树
- 剑指Offer(面试题6~7)
- 剑指Offer 6 重建二叉树
- 剑指Offer面试题6 & Leetcode105
- 剑指offer66题(1-6)
- 在java中如何将一个长整形的数变为数组类型
- 界面设计(K)
- Java 变量类型
- 字符串编程
- HDU 5971 Wrestling Match(染色+暴力)
- 《剑指》6
- javascript基础笔记(十六)之js实现99乘法表
- MyEclipse中运行Struts2框架出错
- Parallels Desktop12 双11钜惠 ¥298
- MySQL集群
- react-naive 搭建开发环境(Windows)
- 设计模式的六大原则
- 多个user.name同时使用git
- 浅析flannel与docker结合的机制和原理