由中序和先序遍历序列建立二叉树
def createBiTree(preOrder,inOrder,preo,ino,n):
if n>0:
i = 0
c = preOrder[preo] # c为先序序列的根结点
while i<n:
if inOrder[i+ino]==c:
break
i += 1
root = BiTreeNode(c)
root.lchild = createBiTree(preOrder,inOrder,preo+1,ino,i).root
# 递归寻找左子树的根结点
root.rchild = createBiTree(preOrder,inOrder,preo+i+1,ino+i+1,n-i-1).root
# 递归寻找右子树的根结点
return BiTree(root)
else:
return BiTree(None)