剑指offer 面试题6 重建二叉树 java版答案
来源:互联网 发布:a站 b站 知乎 编辑:程序博客网 时间:2024/06/08 09:27
package offerAnswer;/* 定义二叉树*/public class BinaryTreeNode { int value; BinaryTreeNode left; BinaryTreeNode right;}
package OfferAnswer;/** * 面试题6 * 重建二叉树 * @author lwk * 1.通过前序遍历确定根节点 * 2.在中序遍历找到该节点,那么在该节点前面的为左子树的节点,该节点后面的为右子树的节点 * 3.递归 */public class Answer06 { public static void main(String[] args) { int[] pre={1,2,4,7,3,5,6,8}; int[] in = {4,7,2,1,5,3,8,6}; BinaryTreeNode root = reconstructBinaryTree(pre,in); BinaryTreeNode p = root; while(null != p){ System.out.println(p.value); p = p.left; } } public static BinaryTreeNode reconstructBinaryTree(int[] pre, int[] in){ if(pre == null || pre.length == 0 || in == null || in.length == 0){ return null; } return reconstructBinaryTree(pre,0,in,0,pre.length-1); } public static BinaryTreeNode reconstructBinaryTree(int[] pre, int preStart, int[] in, int inStart, int inEnd){ if(inStart > inEnd){ return null; } BinaryTreeNode root = new BinaryTreeNode(); root.value = pre[preStart]; if(inStart == inEnd){ return root; } //在中序遍历中寻找根节点 int i = inStart; for (i = inStart; i < in.length; i++) { if(in[i] == root.value){ break; } } //下标i即为根节点的位置 //一分为二,寻找子数组的根节点,分别为该根节点的左右子节点 root.left = reconstructBinaryTree(pre, preStart+1 , in, inStart, i-1); root.right = reconstructBinaryTree(pre, i-inStart+preStart+1, in, i+1, inEnd); return root; } }
0 0
- 剑指offer 面试题6 重建二叉树 java版答案
- 剑指offer面试题6 重建二叉树(java)
- 剑指offer--面试题6:重建二叉树--Java实现
- 剑指Offer面试题6:重建二叉树 Java实现
- 【剑指offer Java】面试题6:重建二叉树
- 剑指Offer面试题6(Java版):重建二叉树
- 剑指Offer面试题6(Java版):重建二叉树
- 《剑指Offer》面试题-重建二叉树
- 剑指offer--面试题6: 重建二叉树(树)
- 剑指offer-->面试题6 重建二叉树
- 【剑指offer】面试题6:重建二叉树
- 《剑指offer》面试题6:重建二叉树
- 剑指offer 面试题6 重建二叉树
- 剑指Offer:面试题6 重建二叉树
- 《剑指offer》面试题6:重建二叉树
- 《剑指offer》面试题6重建二叉树
- 剑指offer面试题6--重建二叉树
- 理解《剑指Offer》之面试题6 重建二叉树
- Tomcat server.xml配置
- 16.11.11
- Spring_aop学习
- oninput和onpropertychange以及其兼容处理
- dependencyManagement与dependencies的区别
- 剑指offer 面试题6 重建二叉树 java版答案
- 程序员为什么要学深度学习?
- spark sql中的sqlcontext与hivecontext区别
- UML类图几种关系的总结
- 欢迎使用CSDN-markdown编辑器
- 剑指Offer——网易笔试题+知识点总结
- 众里寻他千百度-- 轻量级持久化框架
- acm 1228
- 第十周项目2-二叉树遍历的递归算法