더북(TheBook)

자식이 둘인 노드의 삭제

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

(중략)

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

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