cur이 head와 겹쳐 있습니다. 이런 경우에는 head를 다음 노드로 옮겨야 합니다.
그림 12-9 삭제 노드가 첫 번째이고 데이터 개수가 두 개 이상일 때 ②
그림 12-9를 보면 아직은 bef와 cur이 가리키고 있어 삭제 노드의 레퍼런스 카운트는 2입니다. 이후 함수 호출이 끝나 스택 프레임이 해제되면 bef와 cur은 사라지고 삭제 노드의 레퍼런스 카운트는 0이 되어 지워집니다.
다음으로 삭제 노드가 첫 번째 노드가 아닌 경우를 봅시다(#B).
#B. 삭제 노드가 첫 번째 노드가 아닐 때
if target = = cur.data:
#B-1. 삭제 노드가 마지막 노드일 때
if cur = = self.tail:
self.tail = bef
#B-2. 일반적인 경우
bef.next = cur.next
self.d_size -= 1
return cur.data