다음은 단순 연결 리스트(singly linked list) L에서 리스트의 원소를 역순으로 바꾸는 함수이다. 함수에서 ㉠ 부분에 들어갈 프로그램 코드(code)로 옳은 것은?
typedef struct node{
struct node *link;
char data;
} listNode;
typedef struct{
listNode *head;
} linkedList;
void reverse(linkedList *L)
{
listNode *p, *q, *r;
p = L->head;
q = r = NULL;
while ( p != NULL) {
r = q;
q = p;
p = p->link;
㉠
}
L->head = q;
}- ①q = q->link;
- ②
q->link = r;
- ③
p->link = q;
- ④
r->link = q;
선지를 골라 바로 채점해 보세요.
정답 ②
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)