1265. 逆序打印不可变链表
1265. 逆序打印不可变链表
您需要使用以下函数来访问此链表(您 不能 直接访问 ImmutableListNode
):
输入只用来内部初始化链表。您不可以通过修改链表解决问题。也就是说,您只能通过上述 API 来操作链表。
输入:head = [1,2,3,4]
输出:[4,3,2,1]
解法一:栈
思路
利用栈后进先出特性,逆序打印
复杂度
时间复杂度:O(N)O(N)O(N)
空间复杂度:O(N)O(N)O(N)
代码
class Solution {public void printLinkedListInReverse(ImmutableListNode head) {Stack<ImmutableListNode> s = new Stack<>();for (ImmutableListNode p = head; p != null; p = p.getNext()) {s.push(p);}while (!s.isEmpty()) {s.pop().printValue();}}
}
解法二:递归
思路
不用自己开辟栈,用系统栈,就是递归
复杂度
时间复杂度:O(N)O(N)O(N)
空间复杂度:O(N)O(N)O(N),虽然没自己开辟栈,但用到了系统栈
代码
class Solution {public void printLinkedListInReverse(ImmutableListNode head) {if (head == null) return;printLinkedListInReverse(head.getNext());head.printValue();}
}
总结
凡事用栈解决的均能用递归,凡事用递归解决的均能用栈。
取舍在于是要安全还是要速度。
1265. 逆序打印不可变链表相关推荐
- LeetCode 1265. 逆序打印不可变链表(递归)
文章目录 1. 题目 2. 解题 1. 题目 给您一个不可变的链表,使用下列接口逆序打印每个节点的值: ImmutableListNode: 描述不可变链表的接口,链表的头节点已给出. 您需要使用以下 ...
- 算法习题---线性表之单链表逆序打印
一:题目 逆序打印单链表中的数据,假设指针指向单链表的开始结点 二:思路 1.可以使用递归方法,来进行数据打印 2.可以借助数组空间,获取长度,逆序打印数组 3.若是可以,对链表数据使用头插法,逆序排 ...
- 【链表】逆序打印链表
1 public class Main { 2 3 // 逆序打印链表 4 public void reversePrint(Node node) { 5 if (node == null){ 6 r ...
- C++实现链表逆序打印、链表反转
//题目:C++实现链表逆序打印.链表反转 // 如何将链表逆序,取决于题目的要求.如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印. // 方法1:只 ...
- 数据结构与算法java - 03 链表,单向链表,逆序打印单向链表
链表 Linked List 有序 链表是以节点的方式来存储,链式存储 每个节点包含 data 域, next 域:指向下一个节点 链表的各个节点不一定是连续存放 链表分带头节点的链表和没有头节点的链 ...
- 【链表】C++链表反转、链表逆序打印
转载地址:http://blog.csdn.net/yebanxin/article/details/51942598 题目:C++实现链表逆序打印.链表反转 如何将链表逆序,取决于题目的要求.如果面 ...
- 【链表】C++链表反转、链表逆序打印(三)
题目:C++实现链表逆序打印.链表反转 如何将链表逆序,取决于题目的要求.如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印. 方法1:只逆序打印,不改变 ...
- python逆序打印出各位数字_Python练习题 024:求位数及逆序打印
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...
- 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序打印字符串 | 递归要素 | 递归停止条件 | 递归操作 )
文章目录 一.借助 递归函数操作 逆序打印字符串 二.完整代码示例 一.借助 递归函数操作 逆序打印字符串 递归需要掌握下面 222 个点 : 参数入栈模型 : 第 111 次 , "sdh ...
最新文章
- 【一步步学小程序】1.创建项目以及TabBar
- 一位39岁程序员的困惑:知道得越多编程越慢怎么办?
- 获取文件唯一id md5
- 青龙羊毛——狸猫十堰
- 评分卡建模—拒绝推断
- c++语言编辑简单的计算器,c++编写简单的计算器程序
- 什么是 AWS Data Pipeline
- Entity Resolution(实体解析)
- 负负为何得正的推理过程
- java贪吃蛇柚子功能_关于java贪吃蛇心得
- Chrome 浏览器扩展神器暴力猴
- MFI认证与PPID
- vscode 代码片段如何输出$符号
- 《白夜追凶》的黑客水平怎么样?终于有部国产剧没有把黑客当神了
- deficit记忆_总算懂得单词every分析记忆方法
- redis--客户端
- 浅谈爬虫工作中HTTPIP的重要性
- iOS开发之Objective-C(中级篇)-李飞-专题视频课程
- 分享一个电影网站源码。自动抓取
- SQL 两张表关联查询
热门文章
- 抑制肯定响应消息指示位(SPRMIB)
- [AHK]为通达信软件定义快捷键(发送按键法)
- [iOS] AFNetworking 的内存泄漏分析
- c oracle帮助文档下载,Oracle 19c 官方文档——Concepts
- FFmpeg二次开发
- 祝贺!2022 Rust中文社区线上Hackathon评审结果出炉!
- 长短期记忆(LSTM)
- PHP超全局变量之$_GETT和$_POST
- 怎样在excel中通过出生日期计算年龄
- C# 有符号整数 无符号整数