链表的倒序打印
2016-04-30 00:30
363 查看
问题描述:给定一个单链表的头结点,将链表逆序打印,并且要求不能改变链表的结构。
分析:考察对链表的理解,题目要求我们不能改变链表结构,但是链表是个单链表,只能向后指,不能向前指,这时我们可以采用其他数据结构来辅助,
根据单链表性质,要从头开始访问,但是却要最先打印最后的节点,这是属于典型的先访问后输出的特点,因此可以用栈来辅助,将先访问到的节点依次
入栈,入栈完后,开始出栈打印,可以符合题目要求。我们具体在编程时,可以采用栈结构,还可以使用递归,因为递归本质上是用栈来实现的。但是如果
链表太长的话不适合用递归,因为递归开销过大。链表越长,递归层次越大。但是递归编程简单。因此具体使用栈还是递归要结合实际情况而决定各有利弊。
因为此题比较简单,我就不再具体编程实现了,读者可以自己实现。
分析:考察对链表的理解,题目要求我们不能改变链表结构,但是链表是个单链表,只能向后指,不能向前指,这时我们可以采用其他数据结构来辅助,
根据单链表性质,要从头开始访问,但是却要最先打印最后的节点,这是属于典型的先访问后输出的特点,因此可以用栈来辅助,将先访问到的节点依次
入栈,入栈完后,开始出栈打印,可以符合题目要求。我们具体在编程时,可以采用栈结构,还可以使用递归,因为递归本质上是用栈来实现的。但是如果
链表太长的话不适合用递归,因为递归开销过大。链表越长,递归层次越大。但是递归编程简单。因此具体使用栈还是递归要结合实际情况而决定各有利弊。
因为此题比较简单,我就不再具体编程实现了,读者可以自己实现。
相关文章推荐
- 数组和字符串
- JavaWeb之Servlet day02
- HDU 2844 二进制优化的多重背包
- PendingTransition实现炫酷的Activity切换动画
- 【LeetCode】Move Zeroes 解题报告
- C++接口(抽象类)
- 解决 Mac OS X 下 Nginx 编译报错 symbol(s) not found for architecture x86_64
- html中调用本地exe程序 打开文件或文件夹
- Codeforces #324 Div2 D.Dima and Lisa(三素数构造、哥德巴赫猜想)
- poj 1251 最小生成树 krusral算法
- lightoj1207Posters_For_Election&&POJ2528
- POJ 2983 差分约束系统
- 复星昆仲杨光:VR行业四大痛点
- Codeforces #324 Div2 C Marina and Vasya(构造)
- tools.js
- 《DATA+++》保护个人隐私的安全套装
- Python str内部功能介绍
- hdu 1087 Super Jumping! Jumping! Jumping!
- JDBC数据库连接
- Redis 一二事 - 在spring中使用jedis 连接调试单机redis以及集群redis