문제 번호 1474. -- 2020-데이터구조-중간고사-3번

1474: 2020-데이터구조-중간고사-3번

시간 제한: 1 Sec  메모리 제한: 128 MB
제출: 261  해결 문제 수: 133
[제출][채점 상황 열람][게시판]

문제 설명

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




입력

출력

입력 예시

1 2 3 4 5 -999 2

출력 예시

4

도움말

출처

[제출][채점 상황 열람]