剑指Offer - 九度1511 - 从尾到头打印链表
剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08
- 题目描述:
-
输入一个链表,从尾到头打印链表每个节点的值。
- 输入:
-
每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。
- 输出:
-
对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。
- 样例输入:
-
1 2 3 4 5 -1
- 样例输出:
-
5 4 3 2 1
题意分析: 给定一条单链表,从未到头打印出来。第一个念头是可以用头递归的写法进行倒序输出,但不论头递归还是尾递归都不是个会写代码的人该写出来的,因为递归调用中的栈操作开销太累,而且百万级的数据就能搞出栈溢出了。所以可以采取先反转链表,再输出的方法。至于输出完了要不要再转回去,就看数据还有没有人要用了。不过从原则上来说,既然要求设计的是逆序输出链表,就不应该改变原始数据,应该在处理完了以后把链表给转回来的。本题中的数据时一次性的,我索性输出完了就给释放掉了。 时间复杂度O(n),空间复杂度O(1)。
1 // 650320 zhuli19901106 1511 Accepted 点击此处查看所有case的执行结果 5088KB 731B 90MS 2 // 201311122057 3 #include <cstdio> 4 #include <vector> 5 using namespace std; 6 7 class ListNode{ 8 public: 9 int val; 10 ListNode *next; 11 ListNode(int _val = 0) : val(_val), next(NULL){} 12 }; 13 14 int main() 15 { 16 ListNode *root; 17 ListNode *tail; 18 int n; 19 vector<ListNode *> vv; 20 21 root = new ListNode(); 22 tail = root; 23 vv.clear(); 24 while(scanf("%d", &n) == 1 && n >= 0){ 25 tail->next = new ListNode(n); 26 tail = tail->next; 27 vv.push_back(tail); 28 } 29 30 while(vv.size() > 0){ 31 printf("%d\n", vv[vv.size() - 1]->val); 32 vv.pop_back(); 33 } 34 35 tail = root; 36 while(tail != NULL){ 37 root = tail->next; 38 delete tail; 39 tail = root; 40 } 41 42 return 0; 43 }
转载于:https://www.cnblogs.com/zhuli19901106/p/3450320.html
剑指Offer - 九度1511 - 从尾到头打印链表相关推荐
- 剑指offer java版 test3—从尾到头打印链表
标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...
- 剑指offer面试题[5]-从尾到头打印链表
目描述 输入一个链表,从尾到头打印链表每个节点的值. /** * struct ListNode { * int val; * struct ListNode *next ...
- 【剑指offer】登峰造极之从尾到头打印链表
题目链接 从尾到头打印链表. 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1254529 题目描述 /** struct ListNode { i ...
- 剑指offer面试题06. 从尾到头打印链表(辅助栈法)
题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 思路 详见链接 代码 class Solution:def reversePrint(self,head:ListNod ...
- 剑指Offer - 面试题6. 从尾到头打印链表(栈,递归,反转链表)
文章目录 1. 题目 2. 解题 2.1 stack解题 2.2 递归 2.3 反转链表 1. 题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head ...
- 剑指offer 面试题5—从尾到头打印链表
题目: 输入一个链表的头结点,从尾到头反过来打印出每个结点的值. 考虑用栈 public void invertedList1(ListNode head) {if (head == null) {r ...
- 剑指offer(C++)-JZ6:从尾到头打印链表(数据结构-链表)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回). 如输入{ ...
- 【剑指offer-Java版】05从尾到头打印链表
从头到尾打印链表:递归实现比较简单 注意处理异常输入:如输入指针为空 处理边界条件等即可 public class _Q05 {public static void main(String[] arg ...
- 剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列
剑指Offer - 九度1367 - 二叉搜索树的后序遍历序列2013-11-23 03:16 题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出 ...
最新文章
- pip3 install numpy
- innodb一页为什么要存储两行记录_InnoDB中的页合并与分裂
- 三种权重的初始化方法
- Google Chrome —— 离线安装/安装包下载解决方案
- Linux记录-CPU指标介绍
- 模拟springIOC容器的annotation
- mysql 长时间连接没操作,断开连接
- 【译】Asp.Net 导出 Excel 数据的9种方案
- linux内核安装指南-1
- 简单的抽奖function
- 【拓展】一个故事讲完 CPU 的工作原理
- SQL语句:查询语句及多表查询典型例子
- 统一建模语言UML概述
- Android APP完整基础教程(01)开发环境简介
- 14.荔枝派 zero(全志V3S)-驱动OV2640拍照、录制视频
- 微服务守护神-Sentinel-概念
- 论文研读--Masked Generative Distillation
- 今天安利几个App给你
- 安装php扩展fileinfo
- 【LaTeX】LaTeX打取整符号
热门文章
- WinForm控件之【NumericUpDown】
- A Network-based End-to-End Trainable Task-oriented Dialogue System
- 【洛谷5251】[LnOI2019] 第二代图灵机(线段树+ODT)
- Web前端-JavaScript基础教程上
- 【Spring】—— 自动装配
- [SPOJ 687]Repeats
- GUI编程笔记(java)04:GUI(HelloWorld)窗体案例
- Linux系统资源限制
- spring.net nhibernate 分布布式事务(下)
- ASP实现单条件和多条件组合查询的实例