1 图解步骤

2 代码
#include <bits/stdc++.h>
using namespace std;
struct LinkNode {
int value;
LinkNode *next;
LinkNode(int val, LinkNode *nt): value(val), next(nt) { }
LinkNode() { }
};
LinkNode *head, *nxt;
int n;
int main() {
head = new LinkNode(0, NULL);
nxt = head;
cin >> n;
while (n--) {
int x;
cin >> x;
LinkNode *t = new LinkNode(x, NULL);
nxt->next = t;
nxt = t;
}
LinkNode *p = head->next, *q;
if (p == NULL)
return 0;
q = p->next;
p->next = NULL;
head->next = p;
while (q) {
p = q->next;
q->next = head->next;
head->next = q;
q = p;
}
p = head->next;
while (p) {
cout << p->value << " ";
p = p->next;
}
return 0;
}