■ 자식이 둘인 노드의 삭제
마지막으로 삭제 노드의 자식 노드가 두 개인 경우를 살펴보겠습니다.
(중략)
else:
#4. 대체 노드를 찾는다
replace = cur.left
while replace.right:
replace = replace.right
#5. 삭제 노드와 대체 노드의 값을 교환한다
cur.data, replace.data = replace.data, cur.data
#6. 대체 노드를 삭제하면서 삭제된 노드를 받아온다
cur.left, rem_node = self.__remove_recursion(cur.left, replace.data)
(중략)
bst.remove(6)
bst.preorder_traverse(bst.get_root(), f)
(중략)
실행결과 TreeNode of 6 is deleted
5 3 2 4 8 10 9 11