#include <stdio.h> #include<stdlib.h> typedef struct SList { int date; struct SList* next; } SList; SList* CreatNode(int x) { SList* newNode = (SList*)malloc(sizeof(SList)); newNode->date = x; newNode->next = NULL; return newNode; } void TailPushBack(SList** phead, int* pa, int n) { int i = 0; while (i < n) { SList* newNode = CreatNode(pa[i++]); if (*phead == NULL) { *phead = newNode; } else { SList* pcur = *phead; while (pcur->next) { pcur = pcur->next; } pcur->next = newNode; } } } void SwapNode(SList** phead) { SList* pcur = *phead; SList* pc = pcur->next; int num=0; num=pcur->date; pcur->date=pc->date; pc->date=num; while (pcur->next) { pc = pcur; pcur = pcur->next; } num = pc->date; pc->date = pcur->date; pcur->date = num; } void PrintSList(SList* phead){ SList* pcur=phead; while(pcur){ printf("%d ",pcur->date); pcur=pcur->next; } } int main() { int n = 0; scanf("%d", &n); int* pa = (int*)malloc(n * sizeof(int)); for (int i = 0; i < n; i++) { scanf("%d", pa + i); } SList* head = NULL; TailPushBack(&head, pa, n); SwapNode(&head); PrintSList(head); return 0; }