剑指offer之重建二叉树(java)
来源:互联网 发布:网络推广员待遇怎么样 编辑:程序博客网 时间:2024/05/22 17:15
题目描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
/**
* 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
||in==
null
)
return
null
;
return
reConstruct(pre,
0
,pre.length-
1
,in,
0
,in.length-
1
);
}
public
TreeNode reConstruct(
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]);
for
(
int
i=instart;i<=inend;i++){
if
(in[i]==pre[prestart]){
root.left=reConstruct(pre,prestart+
1
,prestart+i-instart,in,instart,i-
1
);
root.right=reConstruct(pre,prestart+i-instart+
1
,preend,in,i+
1
,inend);
}
}
return
root;
}
}
0 0
- 剑指offer之重建二叉树(java)
- 剑指offer之重建二叉树
- 剑指Offer之 - 重建二叉树
- 剑指offer之重建二叉树
- 剑指offer之重建二叉树
- 剑指offer之5 重建二叉树
- 剑指offer(三十三)之重建二叉树
- 剑指offer之重建二叉树
- 剑指offer 之 重建二叉树
- 剑指offer之重建二叉树
- 剑指offer之重建二叉树
- 剑指offer 重建二叉树 java实现
- 剑指offer----重建二叉树---java实现
- 剑指offer:重建二叉树(java)
- 剑指offer-----重建二叉树(java版)
- (四)剑指offer之重建二叉树
- 剑指offer之重建二叉树(Python)
- 剑指offer面试题6 重建二叉树(java)
- 将自己的网站分享到微信,qq,或者人人......
- nyoj +-字符串
- 自己编码。。。不会
- iOS抓包工具Charles基本抓包步骤
- Hololens入门之使用UGUI
- 剑指offer之重建二叉树(java)
- 如何有效的阅读CS专业类书籍
- JSON.parse()和JSON.stringify()
- 设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
- 线程同步(互斥量)
- java 中 哪些异常必须声明并捕获,否则产生编译错误
- 关于PL/SQL Developer中文乱码的解决
- 如何长时间坚持一件事情
- 最简单的方法:mysql的备份与还原