编写一个能将链表使用递归方法倒叙输出的小程序。
创建一个含有n个节点的链表(不包含头结点),n由键盘输入,按照顺序存分别储数字1到n,使用递归的方法倒叙输出。
看看还记不记得“递归”?能否简化链表的操作。
效果如下:
输入:
5
输出:
5
4
3
2
1
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=n;i>0;i--)
{
cout<<i<<endl;
}
}
或
#include<iostream>
using namespace std;
struct node
{
int num;
node*next;
};
node *create(int n)
{
node*head=NULL,*p1,*p2;
head=p1=p2=new node;
head->num=1;
for(int i=2;i<=n;i++)
{
p1=new node;
p1->num=i;
p2->next=p1;
p2=p1;
}
p2->next=NULL;
return head;
}
node* revert(node*head)
{
node*newhead;
if(head==NULL||head->next==NULL)
{
cout<<head->num<<endl;
return head;
}
else
{
newhead=revert(head->next);
cout<<head->num<<endl;
}
}
int main()
{
int num;
cin>>num;
node*head=create(num),*p;
p=revert(head);
return 0;
}