#6과 #7이 연결 리스트를 순회하는 코드입니다. 그림으로 살펴보겠습니다.
cur을 head에 위치시킴으로써 순회를 시작합니다(그림 12-6).
그림 12-6 연결 리스트의 순회 ①
그런 다음 next를 통해 cur이 다음 노드를 참조하면서 연결 리스트에 있는 모든 데이터를 순서대로 한 번씩 참조합니다(그림 12-7).
그림 12-7 연결 리스트의 순회 ②
while 문의 조건에 따라 next가 None을 가리키면 순회를 멈춥니다.
코드 12-5에서 #8, #9를 보면 리스트에서 노드 위치를 나타내는 pos를 0부터 하나씩 증가시키면서 검색의 시작 위치인 start보다 클 때만 target 값을 현재 참조 중인 노드의 데이터와 비교합니다. 일치하는 데이터를 찾으면 일치하는 데이터와 데이터 위치를 묶어 튜플로 반환합니다(#10, #11).