문제
다음 C 코드의 출력 결과로 가장 적절한 것은?
① 35421 ② 12345 ③ 54321 ④ 34521
정답
1번
해설
정답: 1. insert는 새 노드를 head 앞에 붙이므로 최초 리스트는 5→4→3→2→1이다. reconnect(head, 3)은 값 3 노드를 맨 앞으로 옮기므로 3→5→4→2→1이 된다.
오답 풀이
- 1번: 연결 리스트 삽입 순서와 재연결 결과가 맞다.
- 2번: 뒤에 삽입되는 방식으로 착각한 값이다.
- 3번: reconnect 수행 전 리스트이다.
- 4번: 4와 5의 순서를 잘못 계산한 값이다.
보충 개념 단일 연결 리스트에서 노드를 앞으로 이동하려면 이전 노드의 next를 현재 노드 다음으로 바꾸고, 현재 노드의 next를 기존 head로 연결해야 한다.