Example #1
0
def rebuild_tree(forward_list, in_list):

    if len(forward_list) == 0 or len(in_list) == 0:
        return None
    elif len(forward_list) == 1 and len(in_list) == 1:
        return Node(forward_list[0])

    in_list_index = in_list.index(forward_list[0])
    left_lenth = in_list_index

    tree = Node(forward_list[0])
    tree.lchild = rebuild_tree(forward_list[1:left_lenth + 1],
                               in_list[0:left_lenth])
    tree.rchild = rebuild_tree(forward_list[left_lenth + 1:],
                               in_list[left_lenth + 1:])

    return tree