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