首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
从尾到头打印链表
[编程题]从尾到头打印链表
热度指数:1701092
时间限制: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,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(56)
邀请回答
收藏(3303)
分享
提交结果有问题?
2808个回答
371篇题解
开通博客
牛客题解官
发表于 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
展开全文
稚园
发表于 2020-12-15 11:29:21
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。示例1输入{67,0,24,58}返回值[58,24,0,67]解题思路方法一:利用ArrayList.add(index,val),每次都把结果插入到第0个位置方法二:直接进行递归-不通过方法三:直接遍历,之后再将ArrayLi
展开全文
Oh~Sunny
发表于 2019-12-28 19:55:24
class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here # 方法一 使用栈 i
展开全文
洛枫、
发表于 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]; 果然 快很
展开全文
问题信息
链表
来自:
校招模拟卷
难度:
2808条回答
3303收藏
556683浏览
热门推荐
通过挑战的用户
查看代码
胡歌-此生不换
2023-03-05 09:27:31
Song1xinn
2023-03-04 00:39:36
真的想上岸啊
2023-02-23 11:08:09
IDlean
2023-01-05 10:23:54
小苏小苏,绝不认输
2022-12-13 19:44:08
相关试题
编译和执行如下代码,系统将会输出什么?
C语言
评论
(58)
来自
校招模拟卷2
下面程序的输出是:() Strin...
Java
JavaSE
评论
(124)
来自
校招模拟卷2
如下图所示,标号为1A到3C的图形...
判断推理
评论
(13)
来自
校招模拟卷2
在linux中,某文件的权限为:d...
Linux
评论
(6)
来自
校招模拟卷2
市场与销售的区别在哪里?
市场营销
评论
(1)
从尾到头打印链表
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import java.util.ArrayList; public class Solution { public ArrayList
printListFromTailToHead(ListNode listNode) { } }
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class Solution { public: vector
printListFromTailToHead(ListNode* head) { } };
# -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here
using System.Collections.Generic; /* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } }*/ class Solution { // 返回从尾到头的列表值序列 public List
printListFromTailToHead(ListNode listNode) { // write code here } }
/*function ListNode(x){ this.val = x; this.next = null; }*/ function printListFromTailToHead(head) { // write code here } module.exports = { printListFromTailToHead : printListFromTailToHead };
val = $x; } }*/ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ function printListFromTailToHead( $head ) { // write code here }
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param listNode ListNode类 # @return int整型一维数组 # class Solution: def printListFromTailToHead(self , listNode: ListNode) -> List[int]: # write code here
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ func printListFromTailToHead( head *ListNode ) []int { // write code here }
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param listNode ListNode类 * @return int整型一维数组 * @return int* returnSize 返回数组行数 */ int* printListFromTailToHead(struct ListNode* listNode, int* returnSize ) { // write code here }
# class ListNode # attr_accessor :val, :next # # def initialize(val = 0, _next = nil) # @val, @next = val, _next # end # end # # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # @param head ListNode类 # @return int整型一维数组 # class Solution def printListFromTailToHead(head) # write code here end end
/** * class ListNode(var val: Int) { * var next: ListNode = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ def printListFromTailToHead(head: ListNode): Array[Int] = { // write code here } }
/** * class ListNode(var `val`: Int) { * var next: ListNode? = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ fun printListFromTailToHead(head: ListNode?): IntArray { // write code here } }
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ public int[] printListFromTailToHead (ListNode head) { // write code here } }
/*class ListNode { * val: number * next: ListNode | null * constructor(val?: number, next?: ListNode | null) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ export function printListFromTailToHead(head: ListNode): number[] { // write code here }
/** * public class ListNode { * public var val: Int * public var next: ListNode? * public init(_ val: Int = 0, _ next: ListNode? = nil) { * self.val = val * self.next = next * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ func printListFromTailToHead ( _ head: ListNode?) -> [Int] { // write code here } }
/** * #[derive(PartialEq, Eq, Debug, Clone)] * pub struct ListNode { * pub val: i32, * pub next: Option
> * } * * impl ListNode { * #[inline] * fn new(val: i32) -> Self { * ListNode { * val: val, * next: None, * } * } * } */ struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param head ListNode类 * @return int整型一维数组 */ pub fn printListFromTailToHead(&self, head: Option
>) -> Vec
{ // write code here } }
{1,2,3}
[3,2,1]
{67,0,24,58}
[58,24,0,67]