遞歸法import java.util.Arrays;
class Solution {
public TreeNode buildTree(int[] preorder, int[] inorder) {
if(preorder.length==0)
return null;
TreeNode head = new TreeNode(preorder[0]);
int index;
for(index=0;index<preorder.length;index++){
if(inorder[index]==preorder[0]) break;
}
head.left = buildTree(
Arrays.copyOfRange(preorder,1,1+index),
Arrays.copyOfRange(inorder,0,index)
);
head.right = buildTree(
Arrays.copyOfRange(preorder,index+1,preorder.length),
Arrays.copyOfRange(inorder,index+1,inorder.length)
);
return head;
}
}