문제
→ 연결 리스트가 주어지면 역순의 연결 리스트를 반환하라
→ 예시
→ 입력 : [1, 2, 3, 4, 5]
→ 출력 : [5, 4, 3, 2, 1]
접근 방법
→ 반복문 활용 while
→ 이전 값 - 현재 값 next에 넣기
def reverseList(head):
node = head #노드 생성
prev = None #이전 리스트
# 노드가 있는 경우 반복
while node :
next = node.next #노드의 다음값부터의 리스트
node.next = prev #노드의 다음값은 이전값 리스트 넣기
prev = node # 현재의 노드를 이전값으로 넣기
node = next # 노드 다음값부터 원상 복귀
# 결과 출력
return prev
해석
→ 반복문 내에서의 풀이
head = [1, 2, 3, 4, 5]
<1회차>
코드 | 결과 |
---|---|
next = node.next | 2 3 4 5 |
node.next = prev | 1 |
prev = node | 1 |
node = next | 2 3 4 5 |
<2회차>
코드 | 결과 |
---|---|
next = node.next | 3 4 5 |
node.next = prev | 2 1 |
prev = node | 2 1 |
node = next | 3 4 5 |
<3회차>
코드 | 결과 |
---|---|
next = node.next | 4 5 |
node.next = prev | 3 2 1 |
prev = node | 3 2 1 |
node = next | 4 5 |
<4회차>