그런데 노드를 삭제하는 코드가 보이지 않습니다. 노드는 어떻게 삭제하는 걸까요? 물론 del을 이용해 명시적으로 삭제해도 됩니다. 하지만 우리는 레퍼런스 카운팅을 이용하겠습니다. 노드를 삭제하려면 레퍼런스 카운트를 0으로 만들면 됩니다.
TIP 파이썬의 가비지 컬렉션은 레퍼런스 카운팅으로 구현되어 있습니다. 가비지 컬렉션과 레퍼런스 카운팅은 5장 2.3절의 잠깐만요를 참고하세요.
bef를 눈여겨봐야 합니다(#17). bef는 항상 cur이 참조하는 노드의 바로 이전 노드를 참조하다가 cur이 가리키는 노드를 삭제할 때 중요한 역할을 합니다. bef의 역할은 잠시 후 살펴보겠습니다.
노드를 삭제할 때는 크게 두 가지 경우로 나뉩니다.
• 삭제 노드가 첫 번째 노드일 때
• 삭제 노드가 첫 번째 노드가 아닐 때