
已知二叉树的前序和中序构建二叉树
代码如下:
class Node: def __init__(self, data, left, right): self.data=data self.left=left self.right=right def construct_tree(preorder,midorder): if len(preorder)==0: return None root_data=preorder[0] i=midorder.index(root_data) left=construct_tree(preorder[1:i+1],midorder[:i]) right=construct_tree(preorder[i+1:],midorder[i+1:]) return Node(root_data,left,right) if __name__=='__main__': pre_order = [1, 2, 4, 7, 3, 5, 6, 8] mid_order = [4, 7, 2, 1, 5, 3, 8, 6] root=construct_tree(pre_order,mid_order) print root




近期评论