输入描述:
二叉树的前序遍历列表和中序遍历列表
代码实现

class TreeNode:
    def __init__(self,x,left,right):
        self.val = x
        self.left = left
        self.right = right

重构二叉树
def constructTree(preorder,midorder):
    if len(preorder) == 0:
        return None
    root_data = preorder[0]
    i = midorder.index(root_data)
    left = constructTree(preorder[1:i+1],midorder[:i])
    right = constructTree(preorder[i+1:],midorder[i+1:])
    return TreeNode(root_data,left,right)

层序遍历
def levelorder(root):
    if root is None:
        return []
    res = []
    queue = [root]
    while queue:
        level = []
        for _ in range(len(queue)):
            node = queue.pop(0)
            level.append(node.val)
            if node.left:
                queue.append(node.left)
            if node.right:
                queue.append(node.right)
        res.append(level)
    return res