먼저 삭제 노드가 첫 번째 노드인 경우를 봅시다(#A).
#A. 삭제 노드가 첫 번째 노드일 때
if target = = cur.data:
#A-1. 데이터가 하나일 때
if self.size() = = 1:
self.head = None
self.tail = None
#A-2. 데이터가 두 개 이상일 때
else:
self.head = self.head.next
self.d_size -= 1
return cur.data
데이터가 하나만 있을 때(#A-1)는 head와 tail이 None을 가리키게 하여 레퍼런스 카운트가 0이 되도록 만들면 노드가 사라집니다. 데이터 개수가 두 개 이상일 때(#A-2)는 그림으로 확인해 보겠습니다(그림 12-8).
그림 12-8 삭제 노드가 첫 번째이고 데이터 개수가 두 개 이상일 때 ①