[검지 Offer 면접 프로 그래 밍 문제] 제목 1518: 반전 링크 - 9 도 OJ
1750 단어 zjof검지 Offer 면접 프로 그래 밍 문제
링크 를 입력 하고 링크 를 반전 시 킨 후 링크 의 모든 요 소 를 출력 합 니 다.(hint: 링크 를 꼭 사용 하 세 요)
입력:
입력 은 여러 개의 테스트 샘플 을 포함 할 수 있 으 며, 입력 은 EOF 로 끝 납 니 다.모든 테스트 사례 에 대해 입력 한 첫 번 째 행위 의 정수 n (0 < = n < = 1000): 입력 할 링크 의 개 수 를 대표 합 니 다.입력 한 두 번 째 줄 은 n 개의 정수 t (0 < = t < = 1000000) 를 포함 합 니 다. 링크 요 소 를 대표 합 니 다.
출력:
모든 테스트 사례 에 대응 하여 링크 반전 후의 요 소 를 출력 하고 요소 가 없 으 면 NULL 을 출력 합 니 다.
샘플 입력:
5
1 2 3 4 5
0
샘플 출력:
5 4 3 2 1
NULL
[문제 풀이 사고] 본 문제 의 정확 한 사 고 는 세 개의 지침 p1, p2, p3 가 서로 인접 한 세 개의 요소 a, b, c 를 가리 키 고 p2 - > next = p1, p1 = p2, p2 = p3, p3 = p3 - > next 를 가리 키 며 그 다음 에 계속 조정 해 야 합 니 다.NULL 에 대한 처리 도 주의 하 세 요.
그러나 저 는 stl 의 list 데이터 구조 와 그 자체 가 가지 고 있 는 reverse 함 수 를 사용 하여 이 문 제 를 풀 어도 된다 고 생각 하기 때 문 입 니 다.
AC code:
#include
#include
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n!=0)
{
list lst;
int tt;
for(int i=0;i::iterator it=lst.begin();it!=lst.end();++it)
{
if(it!=lst.begin())
printf(" ");
printf("%d",*it);
}
printf("
");
}else
printf("NULL
");
}
return 0;
}
/**************************************************************
Problem: 1518
User: huo_yao
Language: C++
Result: Accepted
Time:150 ms
Memory:1024 kb
****************************************************************/
제목 링크:http://ac.jobdu.com/problem.php?pid=1518
9 도 - 검 지 Offer 연습 문제 전체 답안 다운로드:http://download.csdn.net/detail/huoyaotl123/8276299