SLL의 head 노드 주소와 숫자 n을 입력으로 받아,
SLL에서 끝에서 n번째 노드 값을 반환하는 함수 cutTail ( )을
아래 프로그램에서 완성하시오.
예를 들어, 주어진 SLL이 3 --> 4 --> 8 --> 9 --> null 이고,
n = 2이면, 함수 cutTail은 8을 반환하여야 한다.
단, SLL을 별도의 배열 등에 저장하거나, 저장공간을 따로 만들어서는 안된다.
#include <stdio.h> #include <stdlib.h> struct node { int value; struct node* next; }; struct node* head = 0; void doMistery(int _v) { struct node* temp = head; struct node* cur = (struct node*)malloc(sizeof(struct node)); cur->value = _v; cur->next = 0; if (head == 0) { head = cur; return; } else { while (temp->next != 0) { temp = temp->next; } temp->next = cur; } } int cutTail(struct node* _head, int n) { /* 이 부분만 수정하시오 */ /* 별도의 함수, 변수를 만드는 것은 허용하지만, 기존의 코드를 바꿔서는 안된다. */ } int main(void) { int v; while (1) { scanf("%d", &v); if (v == -999) { break; } doMistery(v); } scanf("%d", &v); printf("%d", cutTail(head, v)); return 0; }