더북(TheBook)

리프 노드의 삭제

먼저 리프 노드를 삭제하는 코드입니다.

(중략)

    #1. 리프 노드일 때

    if not cur.left and not cur.right:

       rem_node = cur

       cur = None

(중략)


bst.remove(9)

bst.preorder_traverse(bst.get_root(), f)

(중략)


실행결과 TreeNode of 9 is deleted
6 3 2 4 5 8 10 11


rem_node가 cur을 참조하게 하고 curNone을 할당합니다. 그림을 통해 살펴보겠습니다.

312

그림 14-15 리프 노드 삭제


curNone이 되면 이 값을 반환받아 업데이트될 10의 왼쪽 자식 노드는 None이 될 것입니다.

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