从尾到头打印链表
2015-11-25 18:55
381 查看
从尾到头打印链表
题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。
链表结点定义如下:
struct ListNode { int m_nKey; ListNode *m_pNext; };
解决这个问题肯定要遍历链表。遍历的顺序是从头到尾的顺序,可输出的顺序却是从尾到头。也就是说第一个遍历到的结点最后一个输出,而最后一个遍历到得结点第一个输出。这就是典型的“后进先出”,可以用栈实现这种顺序。每经过一个结点的时候,把该结点放到一个栈中。当遍历完整个链表后,再从栈顶开始逐个输出结点的值,此时输出的结点的顺序已经反转过来了。
实现代码如下:
递归在本质上就是一个栈结构,于是很自然地想到用递归来实现。要实现反过来输出链表,每访问到一个结点的时候,先递归输出它后面的结点,再输出该结点自身,这样链表的输出结构就反过来了。
实现代码如下:
相关文章推荐
- iOS库--.a与.framework
- 1067. Sort with Swap(0,*) (25)
- 1067. Sort with Swap(0,*) (25)
- NYOJ 739 笨蛋难题四
- 自定义UIButton
- Spring MVC+JSP实现三级联动
- iOS app调用相机和相册
- 带宽
- 包含继承关系的Java程序执行顺序(代码实例)
- 二叉树
- HDU 1156 Color the ball (线段树 区间更新)
- Exception:MappingException: Unknown entity 解决办法
- Js实现select联动,option从数据库中读取
- C# 上传下载ftp(支持断点续传)
- Android View学习相关和设置监听器的方法
- Java基础<十二>-----集合
- C# 上传下载ftp(支持断点续传)
- Android实战技巧:数据存储方式
- Gatling-基于Scala,Akka&Netty的性能测试框架
- 矩阵键盘总结