剑指offer:面试题7—重建二叉树
2019-06-04 16:42
99 查看
题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
解答:
1.递归:
[code]public TreeNode reConstructBinaryTree(int [] pre,int [] in) { TreeNode root=reConstructBinaryTree(pre,0,pre.length-1,in,0,in.length-1); return root; } public TreeNode reConstructBinaryTree(int[] pre,int startPre,int endPre,int[] in,int startIn,int endIn){ if(startPre>endPre || startIn>endIn){ return null; } TreeNode root=new TreeNode(pre[startPre]); for(int i=startIn;i<=endIn;i++){ if(in[i]==pre[startPre]){ root.left=reConstructBinaryTree(pre,startPre+1,startPre+i- startIn,in,startIn,i-1); root.right=reConstructBinaryTree(pre,i- startIn+startPre+1,endPre,in,i+1,endIn); break; } } return root; }
相关文章推荐
- 剑指offer---面试题6重建二叉树
- 《剑指Offer》面试题-重建二叉树
- 《剑指Offer》面试题-重建二叉树
- 剑指offer面试题7:重建二叉树 Java代码实现
- 《剑指offer》面试题6 重建二叉树
- 剑指offer-面试题6.重建二叉树
- 剑指Offer:面试题6 重建二叉树
- 剑指offer面试题06 重建二叉树
- 剑指offer 面试题6 重建二叉树
- 《剑指Offer》面试题6:重建二叉树
- 剑指Offer:面试题6重建二叉树
- 剑指offer 面试题7 重建二叉树
- 剑指Offer---面试题6:重建二叉树
- 剑指offer编程题Java实现——面试题6重建二叉树
- 《剑指Offer》面试题6 重建二叉树——勘误
- 《剑指Offer》读书笔记---面试题6:重建二叉树
- 剑指offer-面试题6 重建二叉树
- 剑指offer面试题java实现之题6:重建二叉树
- 剑指offer_面试题6_重建二叉树(分解步骤,逐个击破)
- 剑指offer面试题七之重建二叉树