def list_to_tree_parent(l): if not l: return None mid = (len(l)-1)/2 n = Node(l[mid]) n.parent = None n.left = list_to_tree_parent(l[:mid]) if n.left: n.left.parent = n n.right = list_to_tree_parent(l[(mid+1):]) if n.right: n.right.parent = n return n