前序中序创建二叉树:
preOrder:{
1,2,4,7,3,5,6,8}
inOrder:{4,7,2,1,5,3,8,6}
- 找到中序中和先序相同的节点(i=3)、leftLen=i、rightLen=len-leftLen-1;
- 将先序和中序分为两半,递归调用:(preS+1,inS,leftLen,preorder,inorder) 和 (preS+leften+1,ins+leftlen+1,rightlen.preorder,inorder)
递归实现:
public static TreeNode createTree(int preS,int inS,int length,int[]preorder,int[]inorder){
if (preorder == null || preorder.length ==