C출력 결과보통 · 20점#연결 리스트#구조체#포인터#반복문

174. 연결 리스트 머리 삽입과 노드 맨 앞 이동

다음 C 프로그램의 실행 결과를 쓰시오.

1#include <stdio.h>
2#include <stdlib.h>
3
4typedef struct Node {
5 int val;
6 struct Node *next;
7} Node;
8
9int main() {
10 Node *head = NULL, *p, *prev;
11 int i;
12 for (i = 1; i <= 4; i++) {
13 p = (Node *)malloc(sizeof(Node));
14 p->val = i * 10;
15 p->next = head;
16 head = p;
17 }
18 prev = head;
19 while (prev->next->val != 20) {
20 prev = prev->next;
21 }
22 p = prev->next;
23 prev->next = p->next;
24 p->next = head;
25 head = p;
26 for (p = head; p != NULL; p = p->next) {
27 printf("[%d]", p->val);
28 }
29 printf("\n");
30 while (head != NULL) {
31 p = head;
32 head = head->next;
33 free(p);
34 }
35 return 0;
36}

해설을 먼저 보면 이후 정답 시 점수가 50%만 반영됩니다.