<pre name="code" class="java">public class BuildTree {
public TreeNode buildBinaryTree(int prestart,int instart,int inend,int[] prelist,int[] inlist){
if(prestart>inend || prestart>prelist.length){
return null;
}
TreeNode root=new TreeNode(prelist[prestart]);
int subnum = 0;
for(int i=0;i<inend;i++){
if(inlist[i]==root.val){
subnum=i;
}
}
root.left=buildBinaryTree(prestart+1,instart,subnum-1,prelist,inlist);
root.right=buildBinaryTree(prestart+1+subnum-instart,subnum+1,inend,prelist,inlist);
return root;
}
}
根据前序遍历和中序遍历构造二叉树 java
最新推荐文章于 2023-05-07 16:17:22 发布