파이썬 연결 리스트 질문드립니다.

조회수 245회

파이썬 알고리즘 책으로 공부 중인데 연결 리스트 부분에서 변수 값 변환되는게 이해되지 않아서 질문드립니다.

연결 리스트는 head : 1->2->3->4->5->6 이고 중간에 2~5를 역순으로 뒤집어 1->5->4->3->2->6으로 변환하는 문제입니다.

중간에 반복 구조로 노드를 뒤집는 부분에서

root = start = ListNode(None)
root.next = head            # root : None-1-2-3-4-5-6
for _ in range(m-1):
    start = start.next      # start : 1-2-3-4-5-6

end = start.next            # end : 2-3-4-5-6

for _ in range(n-m):
    tmp = start.next            # tmp : 2-3-4-5-6
    start.next = end.next       # start : 1-3-4-5-6
    end.next = end.next.next    # end : 2-4-5-6
    start.next.next = tmp       # start : 1-3-2-3-4-5-6??

이런 풀이가 나오는데 제가 생각하기로는 주석달아 놓은거처럼 바뀔거같은데 확인해보니까 end.next = end.next.next 이 부분에서 tmpend와 같은 값으로 변환되더라고요...

그 이유를 좀 알 수 있을까요?

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)