리프 노드의 삭제

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

    (중략)

        #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이 될 것입니다.

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