6. 从尾到头打印链表
描述
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例
输入:head = [1,3,2]
输出:[2,3,1]
思路
这道题就是简单的逆序访问单链表节点,可以用递归在回溯的时候访问它,也可以自己定义一个辅助栈去存储访问过的节点数据。两种方法所用的辅助空间几乎相同,递归所需在栈中存储的信息更多,可能空间代价略高一些。
代码
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/
// 递归法
class Solution {List<Integer> list = new ArrayList<>();public int[] reversePrint(ListNode head) {recur(head);int[] rst = new int[list.size()];int i = 0;for (int x : list) {rst[i++] = x;}return rst;}private void recur(ListNode node) {if (node == null) return;recur(node.next);list.add(node.val);}
}
// 辅助栈
class Solution {List<Integer> list = new ArrayList<>();public int[] reversePrint(ListNode head) {Stack<Integer> stack = new Stack<>();ListNode cur = head;while (cur != null) {stack.push(cur.val);cur = cur.next;}int[] rst = new int[stack.size()];for (int i = 0; i < rst.length; i++) {rst[i] = stack.pop();}return rst;}
}
6. 从尾到头打印链表相关推荐
- 剑指offer:面试题06. 从尾到头打印链表
题目:从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 限制: 0 <= 链表长度 & ...
- 【剑指Offer专题】链表系列:从尾到头打印链表、反转链表、回文链表、合并两个排序的链表(C++和Python实现)...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 剑指Offer(三):从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每 ...
- 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java
<LeetCode力扣练习>剑指 Offer 06. 从尾到头打印链表 Java 一.资源 题目: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入: ...
- java从尾到头打印链表数据_Java编程实现从尾到头打印链表代码实例
问题描述:输入一个链表的头结点,从尾巴到头反过来打印出每个结点的值. 首先定义链表结点 public class ListNode { int val; ListNode next = null; L ...
- JAVA实现从尾到头打印链表(《剑指offer》)
最近在刷<剑指offer>里的编程题,但是网上关于<剑指offer>的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码 ...
- 【剑指Offer】从尾到头打印链表
剑指Offer 从尾到头打印链表 题目描述 解法1 实现代码 一点补充 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. 解法1 这道题主要思路是while循环从头遍历整个列 ...
- 剑指Offer - 九度1511 - 从尾到头打印链表
剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例. 每一组测试案 ...
- LeetCode-剑指 Offer 06. 从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表 思路一:翻转 1:用vector存从头到尾的每个节点值 2:返回时候用reverse翻转一下 时间复杂度:O(n) 空间复杂度:O(n) /*** Defi ...
- 剑指offer06.从尾到头打印链表
剑指offer06.从尾到头打印链表 1. 改变链表结构的解法 2.可以使用栈,递归,或者直接反向输出数组 提示: 若是面试遇到此题,最好先向面试官确认是否可以改变链表的结构, 1. 改变链表结构的解 ...
- python 从尾到头打印链表
从尾到头打印链表 输入一个链表的头节点,从尾到头反过来返回每个节点的值 (用数组返回).示例 1:输入:head = [1,3,2] 输出:[2,3,1] 提供三种题解 # Definition fo ...
最新文章
- ld-linux-x86-64.so.2+,RedHat6安装Oracle数据库遇到错误 C [ld-linux-x86-64.so.2+0x14d70]
- mysql游标结果为空
- python单词意思-Python
- anaconda不同虚拟环境下使用jupyter的问题
- HDU 5878 I Count Two Three
- halo多人正在连接服务器,在线人数过低 《光晕2》PC版多人服务器下月关闭
- swagger在springboot上的快速上手
- 腾讯云 AI 在新基建领域下一盘什么大棋
- 黑马程序员_Java基础(环境搭建、进制转换、运算符)
- 微软卸载工具msicuu2(附带资源)
- Emlog大表哥资源网模板
- 机器学习中的数据集切分
- [JS jQuery项目]仿网易云音乐项目问题摘要
- dilated conv的理解
- 9部最佳Netflix原创恐怖电影和电视节目播出(2020年6月)
- Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件
- 关掉visual studio 在桌面上右键---在visual studio中打开
- mysql 主键列_MySQL列属性 之 主键
- 国内ce认证机构有哪些 国内十大CE认证机构排名 做ce认证的公司推荐
- android程序设计排序方法,Android编程之可以实现拖动排序的listview控件