考点:循环链表
#include<bits/stdc++.h>
using namespace std;
const int MAXSIZE=1001;
struct node {
int e;
node * next;
};
int main() {
int m,n;
cin>>m;
while(m--) {
cin>>n;
node *h=(node *)malloc(sizeof(node));
h->next=h;
for(int i=n; i>=1; i--) {
node *p=(node *)malloc(sizeof(node));
p->e=i;
if(n==i) {
h=p;
p->next=h;
} else {
p->next=h->next;
h->next=p;
}
}
node *q=h->next;
int cnt=0;
vector<int> v;
while(q->next!=q) {
cnt++;
if(cnt==2) {
node *p=q->next;
q->next=p->next;
cout<<p->e<<" ";
free(p);
cnt=0;
}
q=q->next;
}
cout<<q->e<<endl;
}
return 0;
}