首页 > 试题广场 >

从尾到头打印链表

[编程题]从尾到头打印链表
  • 热度指数:1695665 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。

输入{1,2,3}的链表如下图:
返回一个数组为[3,2,1]

0 <= 链表长度 <= 10000
示例1

输入

{1,2,3}

输出

[3,2,1]
示例2

输入

{67,0,24,58}

输出

[58,24,0,67]

说明:本题目包含复杂数据结构ListNode,点此查看相关信息
头像 牛客题解官
发表于 2020-05-29 14:39:06
精华题解 题目的主要信息: 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值 返回值保存在数组中 举一反三: 学习完本题的思路你可以解决如下题目: JZ24. 反转链表 方法一:递归(推荐使用) 知识点:递归 递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复 展开全文
头像 Peterliang
发表于 2021-07-18 15:36:53
精华题解 思路分析 给出一个链表,需要我们从尾部到头部打印出这个链表的所有的节点的权值。 思路分析 解法一 直接遍历 题目很简单,很朴素。我们直接从这个链表的头节点开始进行遍历。然后我们记录下这个数组的每个节点的信息。最后反转一下整个数组,返回即可。 代码如下 需要直接遍历长度为n的链表的所有的 展开全文
头像 Maokt
发表于 2021-06-29 17:35:43
精华题解 算法思想一:辅助数组 解题思路: 1、创建存储链表结点元素的数组 res 2、遍历链表,并同时将遍历的结点存储入数组 3、倒序输出数组结果 图解: 链表:{1,2,3} 步骤 链表 展开全文
头像 叫我皮卡丘
发表于 2019-08-08 23:09:45
【剑指offer】从尾到头打印链表 -- Java实现 一、非递归 1. 分析 listNode 是链表,只能从头遍历到尾,但是输出却要求从尾到头,这是典型的"先进后出",我们可以想到栈!ArrayList 中有个方法是 add(index,value),可以指定 index 位置插入 value 展开全文
头像 中工升达预备毕业生
发表于 2019-08-26 19:18:26
0.递归写法 public class Solution { ArrayList list = new ArrayList(); public ArrayList printListFromTailToHead(ListNode listNode) { if(list 展开全文
头像 美丽东
发表于 2019-09-01 16:36:54
总感觉可以使用这种简单粗暴的方法~ class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> A; while 展开全文
头像 Oh~Sunny
发表于 2019-12-28 19:55:24
class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here # 方法一 使用栈 i 展开全文
头像 稚园
发表于 2020-12-15 11:29:21
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入{67,0,24,58}返回值[58,24,0,67]解题思路方法一:利用ArrayList.add(index,val),每次都把结果插入到第0个位置方法二:直接进行递归-不通过方法三:直接遍历,之后再将ArrayLi 展开全文
头像 洛枫、
发表于 2019-09-05 14:50:58
迭代法 初始化三个指针prev为NULL,curr为head,next为NULL。 通过链表迭代。在循环中,执行以下操作。//在更改当前节点的下一个节点之前,//存储下一个节点next = curr-> next//现在改变当前节点的下一节点//这是实际逆转发生的地方curr-> n 展开全文
头像 leschus
发表于 2020-12-21 22:58:11
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 初始代码 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * 展开全文
头像 把牛妹带回家
发表于 2019-07-26 15:39:40
简单列表保存 def printListFromTailToHead(self, listNode): # write code here res=[] while listNode: res.append(listNode.v 展开全文
头像 offer砸过来!
发表于 2021-10-01 20:57:29
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接 展开全文
头像 牛客82035003号
发表于 2022-04-11 19:40:45
第一想到的不就是把链表的值一个一个放到数组里去,然后再把数组的值反转,最后打印就好了嘛。 可是逆置也很麻烦啊,然后看到别人的写法,先遍历一遍把结点个数num计算出来,然后指针再回到链头, 接着把元素一个一个倒着放进数组不就可以了吗,从arr[num-1] 一直到arr[0]; 果然 快很 展开全文