问题描述
从控制台输入N个数,利用这N个数建立一个单项链表,链表节点的值按照N个数的输入顺序记录。要求使用1个循环,将链表反向,而且不允许使用超过3个除链表之外的变量
输入
输入节点个数n
一次输入链表节点的值A1,A2。。。,AN
输出
输出 An, An-1,..., A1
样例输入
10 1 2 3 4 5 6 7 8 9 0
样例输出
0 9 8 7 6 5 4 3 2 1
#include<iostream>
using namespace std;
struct node
{
int data;
node * next;
};
void CreateList(node * & head,int N)
{
node * s,* p;
while(N--)
{
s=new node;
cin>>s->data;
if(head==NULL)
head=s;
else
p->next=s;
p=s;
}
p->next=NULL;
return;
}
void Reverse(node * & head)
{
node * p;
if(head==NULL)
return;
else
{
p=head;
head=head->next;
Reverse(head);//递归
cout<<p->data<<' ';
}
}
int main()
{
int n;
cin>>n;
node * head=NULL;
CreateList(head,n);
Reverse(head);
}