java实现重建二叉树
来源:互联网 发布:淘宝出货单表格 编辑:程序博客网 时间:2024/05/06 14:03
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }public class Solution_erchashu{ public TreeNode reConstructBinaryTree(int [] pre,int [] in) { TreeNode root=new TreeNode(pre[0]);//前序的第一个数定为根 int len=pre.length; //当只有一个数的时候 if(len==1){ root.left=null; root.right=null; return root; } //找到中序中的根位置 int rootval=root.val; int i; for(i=0;i<len;i++){ if(rootval==in[i]) break; } //创建左子树 if(i>0){ int[] pr=new int[i]; int[] ino=new int[i]; for(int j=0;j<i;j++){ pr[j]=pre[j+1]; ino[j]=in[j]; } root.left=reConstructBinaryTree(pr,ino); }else{ root.left=null; } //创建右子树 if(len-i-1>0){ int[] pr=new int[len-i-1]; int[] ino=new int[len-i-1]; for(int j=i+1;j<len;j++){ ino[j-i-1]=in[j]; pr[j-i-1]=pre[j]; } root.right=reConstructBinaryTree(pr,ino); }else{ root.right=null; } return root; } public static void main(String[] args){ int pre[]={1,2,4,7,3,5,6,8}; int in[]={4,7,2,1,5,2,8,6}; Solution_erchashu s=new Solution_erchashu(); TreeNode treeNode=s.reConstructBinaryTree(pre,in); System.out.println(treeNode.left.val); System.out.println(treeNode.right.val); }}
0 0
- java实现重建二叉树
- java实现重建二叉树
- java实现 重建二叉树
- 重建二叉树java实现
- 剑指offer 重建二叉树 java实现
- 剑指offer----重建二叉树---java实现
- 重建二叉树java
- Java重建二叉树
- 重建二叉树(Java)
- Java 重建二叉树
- 【java】二叉树重建
- Java笔记---剑指Offer(一:Java实现重建二叉树)
- JS实现重建二叉树
- 【编程之美】java实现重建二叉树
- 剑指offer--面试题6:重建二叉树--Java实现
- JAVA实现重建二叉树(《剑指offer》)
- 剑指Offer面试题6:重建二叉树 Java实现
- JAVA实现重建二叉树(《剑指offer》)
- mysql查询5分钟内的数据
- nfs3方式挂载hdfs实现高可用存储
- HDU 6031 Innumerable Ancestors(LCA,树链剖分)
- linux下学习正则的一些小结
- 大都会系统MetLife小记
- java实现重建二叉树
- Python进阶之装饰器
- Ubuntu下安装MySQL及简单操作
- Edraw Office Viewer component教程(二):将Excel嵌入VB 6并使之自动化
- win10+anaconda3-4.3.1+tesorflow1.0安装过程(配置Spyder)
- 港中大教授James招收机器学习理论方向全奖博士生
- 获取当年年份 月份判断星期几 如何写个程序计算出每个月的第一个星期一对应的日期
- 【MATLAB图像处理2】 直方图的均衡化(附源码)
- java两个栈实现队列