먼저 삭제 노드가 첫 번째 노드인 경우를 봅시다(#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 삭제 노드가 첫 번째이고 데이터 개수가 두 개 이상일 때 ①

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