자식이 둘인 노드의 삭제

    마지막으로 삭제 노드의 자식 노드가 두 개인 경우를 살펴보겠습니다.

    (중략)

    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

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.