더북(TheBook)

먼저 삭제 노드가 첫 번째 노드인 경우를 봅시다(#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).

257

그림 12-8 삭제 노드가 첫 번째이고 데이터 개수가 두 개 이상일 때 ①

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