public TreeNode reConstructBinaryTree(int [] pre, int [] in) {
return reConstructBinaryTree(pre,in,0,pre.length-1,0,in.length-1);
}
private TreeNode reConstructBinaryTree(int[] pre,int[] in,
int preStart,int preEnd,
int inStart,int inEnd){
if(preStart>preEnd || inStart>inEnd){
return null;
}
TreeNode root = new TreeNode(pre[preStart]);
int index = -1;
for(int i=inStart;i<=inEnd;i++){
if(in[i]==pre[preStart]){
index = i;
break;
}
}
root.left = reConstructBinaryTree(pre,in,
preStart+1,preStart+(index-inStart),inStart,index-1);
root.right = reConstructBinaryTree(pre,in,
preStart+(index-inStart)+1,preEnd,index+1,inEnd);
return root;
}
https://www.mianshi.online,https://www.i9code.cn
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。