//Debug了好久,结果发现原因是当前节点没初始化。。。郁闷啊
public static TreeNode BuiltBinaryTree(int[] pre,int[] in) {
TreeNode root=null;
if(pre.length==0||in.length==0) {
return root;
}
int i,j,flag=0;
while(in[flag]!=pre[0]) {
flag++;
}
root=new TreeNode(pre[0]);
int[] aPL=new int[flag];
int[] aIL=new int[flag];
int[] aPR=new int[pre.length-1-flag];
int[] aIR=new int[pre.length-1-flag];
for(i=1,j=0;i<=flag&&j<flag;i++,j++) {
aPL[j]=pre[i];
aIL[j]=in[j];
}
for(i=flag+1,j=0;i<pre.length;i++,j++) {
aPR[j]=pre[i];
aIR[j]=in[i];
}
root.left=BuiltBinaryTree(aPL,aIL);
root.right=BuiltBinaryTree(aPR,aIR);
return root;
}