您的位置:首页 > Web前端

剑指offer例题5—逆序输出链表

2012-12-29 22:40 453 查看
使用递归:

#include<iostream>
using namespace std;
struct ListNode
{
int value;
ListNode *next;
};
void Print(ListNode *list)
{
if(list!=NULL)
{
if(list->next!=NULL)
Print(list->next);
cout<<list->value<<endl;
}
}
int main()
{
int n;
while(cin>>n)
{
ListNode *head=(ListNode*)malloc(sizeof(ListNode*));
ListNode *list=head;
while(n--)
{
int m;cin>>m;
ListNode *newNode=(ListNode*)malloc(sizeof(ListNode*));
newNode->value=m;
list->next=newNode;
list=list->next;
}
list->next=NULL;
Print(head->next);
}
return 0;
}


使用栈:

#include<iostream>
#include<stack>
using namespace std;
struct ListNode
{
int value;
ListNode *next;
};
void Print(ListNode *list)
{
stack<ListNode*>s;
while(list!=NULL)
{
s.push(list);
list=list->next;
}
while(!s.empty())
{
cout<<s.top()->value<<endl;
s.pop();
}
}
int main()
{
int n;
while(cin>>n)
{
ListNode *head=(ListNode*)malloc(sizeof(ListNode*));
ListNode *list=head;
while(n--)
{
int m;cin>>m;
ListNode *newNode=(ListNode*)malloc(sizeof(ListNode*));
newNode->value=m;
list->next=newNode;
list=list->next;
}
list->next=NULL;
Print(head->next);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: