파이썬 자료구조 책 공부중..

챕터2, 2.9번 문제 풀이


1. 제일 마지막 노드의 아이템을 변수에 저장

(제일 첫번째 노드 역시 변수에)

2. insert_after 메서드를 활용하여 self.head를 제일 뒤에 삽입

3. 제일 앞에 노드를 삭제

4. 제일 앞 노드와 1번에서 저장한 변수 값이 같아질때까지 실행


이 함수를 재귀로 돌리면 1번이 계속 리셋이 되서

함수 내에서 while문으로 작성함


def reverse(self):

p = self.head

for i in range(self.size -1):

p = p.next

#이를 통해서 p에 제일 마지막 아이템을 저장.

#여기서 size만큼 돌리게 되면 p에 None이 저장됨

while self.head != p:

self.insert_after(self.head.item, p):

#여기서 self.head는 node 객체(item, link)이므로 

#item만을 넣기 위해 item으로 적용

self.delete_front():


대충 기억나는건 이정도..

+ Recent posts