算法学习之旅,初级篇(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; }
遇到的问题
算是典型的时间换空间吧。
相关文章推荐
- 算法学习记录三(C++)--->从尾到头打印链表每个节点的值
- 经典算法学习——打印两个链表的第一个公共节点
- 算法题目-从尾到头打印链表
- 算法学习之旅,初级篇(23)–合并两个有序链表
- 【剑指Offer学习】【面试题5 : 从尾到头打印链表】
- 算法学习之旅,初级篇(30)-–删除链表内节点
- 算法-从尾到头打印链表
- C语言实现 从尾到头打印链表每个节点的值(链表学习 二)
- 前端常见算法面试题之 - 从尾到头打印链表[JavaScript解法]
- 数据结构与算法-从尾到头打印链表
- 面试算法(四)从尾到头打印链表
- 校招准备系列:每天一道算法题(12)-从尾到头打印链表
- 算法学习之旅,初级篇(27)-–逆转一个链表
- 学习Stack,并实现从尾到头打印链表LinkedList
- 《剑指Offer》学习笔记--面试题5:从尾到头打印链表
- 算法题目---从尾到头打印链表
- 算法练习三:从尾到头打印链表
- 剑指Offer学习之面试题5 : 从尾到头打印链表
- 二维数组中的查找、空格替换、从尾到头打印链表 --漫漫算法路 刷题篇
- 重拾算法之剑指Offier——从尾到头打印链表