1265. 逆序打印不可变链表

给您一个不可变的链表,使用下列接口逆序打印每个节点的值:

您需要使用以下函数来访问此链表(您 不能 直接访问 ImmutableListNode):

输入只用来内部初始化链表。您不可以通过修改链表解决问题。也就是说,您只能通过上述 API 来操作链表。

示例 1:

输入: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. 逆序打印不可变链表相关推荐

  1. LeetCode 1265. 逆序打印不可变链表(递归)

    文章目录 1. 题目 2. 解题 1. 题目 给您一个不可变的链表,使用下列接口逆序打印每个节点的值: ImmutableListNode: 描述不可变链表的接口,链表的头节点已给出. 您需要使用以下 ...

  2. 算法习题---线性表之单链表逆序打印

    一:题目 逆序打印单链表中的数据,假设指针指向单链表的开始结点 二:思路 1.可以使用递归方法,来进行数据打印 2.可以借助数组空间,获取长度,逆序打印数组 3.若是可以,对链表数据使用头插法,逆序排 ...

  3. 【链表】逆序打印链表

    1 public class Main { 2 3 // 逆序打印链表 4 public void reversePrint(Node node) { 5 if (node == null){ 6 r ...

  4. C++实现链表逆序打印、链表反转

    //题目:C++实现链表逆序打印.链表反转 // 如何将链表逆序,取决于题目的要求.如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印. // 方法1:只 ...

  5. 数据结构与算法java - 03 链表,单向链表,逆序打印单向链表

    链表 Linked List 有序 链表是以节点的方式来存储,链式存储 每个节点包含 data 域, next 域:指向下一个节点 链表的各个节点不一定是连续存放 链表分带头节点的链表和没有头节点的链 ...

  6. 【链表】C++链表反转、链表逆序打印

    转载地址:http://blog.csdn.net/yebanxin/article/details/51942598 题目:C++实现链表逆序打印.链表反转 如何将链表逆序,取决于题目的要求.如果面 ...

  7. 【链表】C++链表反转、链表逆序打印(三)

    题目:C++实现链表逆序打印.链表反转 如何将链表逆序,取决于题目的要求.如果面试官只要求打印,一般不改动链表结构为好,如果要求改变链表的方向,则需要改变结构,再顺序打印. 方法1:只逆序打印,不改变 ...

  8. python逆序打印出各位数字_Python练习题 024:求位数及逆序打印

    [Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...

  9. 【C 语言】字符串模型 ( 字符串翻转模型 | 借助 递归函数操作 逆序打印字符串 | 递归要素 | 递归停止条件 | 递归操作 )

    文章目录 一.借助 递归函数操作 逆序打印字符串 二.完整代码示例 一.借助 递归函数操作 逆序打印字符串 递归需要掌握下面 222 个点 : 参数入栈模型 : 第 111 次 , "sdh ...

最新文章

  1. 【一步步学小程序】1.创建项目以及TabBar
  2. 一位39岁程序员的困惑:知道得越多编程越慢怎么办?
  3. 获取文件唯一id md5
  4. 青龙羊毛——狸猫十堰
  5. 评分卡建模—拒绝推断
  6. c++语言编辑简单的计算器,c++编写简单的计算器程序
  7. 什么是 AWS Data Pipeline
  8. Entity Resolution(实体解析)
  9. 负负为何得正的推理过程
  10. java贪吃蛇柚子功能_关于java贪吃蛇心得
  11. Chrome 浏览器扩展神器暴力猴
  12. MFI认证与PPID
  13. vscode 代码片段如何输出$符号
  14. 《白夜追凶》的黑客水平怎么样?终于有部国产剧没有把黑客当神了
  15. deficit记忆_总算懂得单词every分析记忆方法
  16. redis--客户端
  17. 浅谈爬虫工作中HTTPIP的重要性
  18. iOS开发之Objective-C(中级篇)-李飞-专题视频课程
  19. 分享一个电影网站源码。自动抓取
  20. SQL 两张表关联查询

热门文章

  1. 抑制肯定响应消息指示位(SPRMIB)
  2. [AHK]为通达信软件定义快捷键(发送按键法)
  3. [iOS] AFNetworking 的内存泄漏分析
  4. c oracle帮助文档下载,Oracle 19c 官方文档——Concepts
  5. FFmpeg二次开发
  6. 祝贺!2022 Rust中文社区线上Hackathon评审结果出炉!
  7. 长短期记忆(LSTM)
  8. PHP超全局变量之$_GETT和$_POST
  9. 怎样在excel中通过出生日期计算年龄
  10. C# 有符号整数 无符号整数