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;
}