您的位置:首页 > 其它

算法学习之旅,初级篇(28)-–从尾到头打印链表

2017-08-17 10:04 204 查看
介绍

定义一个函数,从尾节点开始打印输出链表。

分析

可以用递归的方式,到尾节点了在开始打印输出数据。也可以生成一个新的链表从头节点插入,然后输出。也可以用栈来保存遍历的链表节点,然后弹栈输出。

代码

#include<stdio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct ListNode
{
int value;
ListNode* next;
}ListNode;
void PrintList(ListNode* pHead)
{
ListNode* pNode=pHead;
if(pNode==NULL)
return;
PrintList(pNode->next);
cout<<pNode->value<<endl;
return;
}
int main()
{
ListNode* m_list=(ListNode*)malloc(sizeof(ListNode));
m_list->value=10;
m_list->next=NULL;
ListNode* k=m_list;
for(int i=10;i<15;i++)
{
ListNode* item=(ListNode*)malloc(sizeof(ListNode));
item->value=i*2;
item->next=NULL;
k->next=item;
k=item;
}
k=m_list;
while(k!=NULL)
{
cout<<k->value<<" ";
k=k->next;
}
cout<<endl;
PrintList(m_list);
system("pause");
return 0;
}


遇到的问题

算是典型的时间换空间吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 链表