#include <iostream>
using namespace std;
//根据一个整数序列构造一个单链表,然后将其反转。
//例如:原单链表为 2 3 4 5 ,反转之后为5 4 3 2
struct node{
int data;
node *next;
};
node * reverse(node *head){
node *p=head->next;
node *q=p->next;
while(q!=NULL){
p->next=q->next; //摘
q->next=head->next; //初学者一定要注意先连接后断开
head->next=q; //头插
q=p->next;
}
while(head)
{
printf("%3d",head->next->data);
head= head->next;
}
return head;
}
int main(){
int n,x;
scanf("%d",&n);
node *head = new node;
head->next=NULL;
node *q=head;
for(int i=0;i<n;i++){
scanf("%d",&x);
node *p = new node;
if(i==0){
head->next=p;
q=p;
}
else{
q->next=p;
q=p;
}
p->data=x;
p->next=NULL;
}
head=reverse(head);
}
08-19