(剑指offer题目3)输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1348087 分析:从头到尾的顺序返回一个链表,首先我们立即思考到可以使用栈的结构或者和栈思想一致的递归,前者需要额外的空间,而后者则需要注意链表过长导致的运行时栈的溢出。带着这个思路我们看题发现题目已经定义了链表节点结构,并且指定了反转算法的返回值只能为vector。于是乎,既然不得不用vector,则我们只需要用vector完成栈功能即可。代码如下 class Solution { public: 阅读详情

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList

C++版本

/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/

class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        int i = 0;
        ListNode *p = head;
		
		//先将链表逆序
        while (p) {
            ++i;
            p = p->next;
        }
        vector<int> array(i,0);
        p = head;
		//再将值放进去
        while (p && i) {
            --i;
            array[i] = p->val;
            p = p->next;
        }
        return array;
    }
};

class Solution {
public:
    vector<int> printListFromTailToHead(struct ListNode* head) {
        vector <int> result;
        if(head==NULL) {
            return result;
        }
        stack<ListNode*> reverse;
        ListNode* p = head;
        while(node != NULL) {
             reverse.push(p);
             p = p->next;
        }
        while(!reverse.empty()) {
            p=reverse.top();
            result.push_back(p->val);
            reverse.pop();
        }
      return result;  
    }
};

Java版本

/**
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/
import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> printListFromTailToHead(ListNode listNode) {
        if (listNode == null) {
            return new ArrayList<Integer>();
        } else {
            ArrayList<Integer> array = printListFromTailToHead(listNode.next);
            array.add(listNode.val);
            return array;
        }
    }
}
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 一、需求 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 二、实现思路 1.定义一个类保存链表节点, 类 ListNode 2.输入一个链表,调用 inputLinkVal() 方法 3.将链表倒序添加到ArrayList集合中,调用printListFromTailToHead(ListNode listNode) 三、代码实现 /** * * * 输入一个链表... 阅读详情

相关推荐

牛客网:按链表值从尾到头的顺序返回一个ArrayList

最近在学习数据结构与算法,于是去牛客网的剑指offer中寻找与学习部分同知识点的题目来练习,中途遇上了许多问题,在下文中会介绍几种版本遇上的问题和产生问题的原因分析,希望能对同做本系列题目的人有一点帮助。 题目描述: 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 首先是题目提供的代码部分 /** * struct ListNode { * int val; * ...

fanzhuozhen1391的博客 213

【理论&实战篇】大模型RAG技术详解(一)-基础篇

RAG的初衷是为了增强大模型的事实性、时效性,减少幻觉,引入专业知识优化生成回复,是一种结合了信息检索技术与语言生成模型的人工智能技术。通过,并将其作为提示(Prompt)输入给大模型(LLM),来。

qq_41375680的博客 374

剑指offer-03-输入一个链表,从尾到头打印链表每个节点的值。

题目描述:输入一个链表,从尾到头打印链表每个节点的值。 import java.util.*; /** *    public class ListNode { *        int val; *        ListNode next = null; * *        ListNode(int val) { *            this.val = val; *

每天进步一点点! 541

基于 国产USRP B210 的通信+侦测+干扰三合一实验平台,解锁无线攻防全场景!

在当代复杂电磁环境与多样化通信需求并存的背景下,软件定义无线电(SDR)技术正展现出前所未有的系统灵活性与功能可重构性。由两台USRP-LW B210软件无线电设备模拟无线链路通信过程,能够模拟多种无线通信信号传输及图像传输场景,适用于通信协议验证、抗干扰测试及教学实验。,支持"通信-侦测-干扰-优化"的闭环实验流程,为无线通信领域的教学科研与工程应用提供了一套经济高效、功能完备的解决方案。系统可对通信链路信号进行快速、自动化侦测、识别、告警,并支持多种干扰信号生成、模式切换及效果评估功能。

luowave2012的博客 833

4090显卡实测:PointPillars在KITTI数据集上的3D目标检测复现全流程(附避坑指南)

本文详细记录了在NVIDIA RTX 4090显卡上,从环境搭建、数据处理到模型训练与评估,完整复现PointPillars算法在KITTI数据集上进行3D目标检测的全流程。重点分享了版本配置、数据预处理、性能调优及常见问题的避坑指南,帮助开发者高效利用硬件资源,成功跑通并理解这一经典3D检测项目。

purple的博客 914

剑指Offer #03 从尾到头打印链表(递归)

题目来源:牛客网-剑指Offer专题 题目地址:从尾到头打印链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 题目解析 方法一: 因为题目要求返回的顺序是从尾到头,所以我们可以采用递归的形式访问链表,在回归的过程才将节点的值存入ArrayList中,以达到逆序的目的。 /** * public class ListNode { * int va...

Veggie的博客 1万+

【行业解决方案篇十五】【DeepSeek物流优化:车辆路径规划算法】

写完这篇技术解析,突然想起那位多绕150公里的王师傅——现在他的车载平板会实时显示"路径健康度",当偏离最优路线超过5%就自动报警。从节约算法到深度强化学习,从三维装载到时序预测,这些技术最终化作每辆货车少烧的1升柴油,每个快递小哥早回家的1小时。最后说个浪漫的事:系统曾为某偏远山区规划出一条穿越枫叶林的配送路线,不仅节省23公里,还成了网红打卡路线。原来物流优化的尽头,不仅是冰冷的数学,还有人间烟火气的温度。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 293

剑指offer:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

剑指offer算法题 链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 题目分析 思路一 利用栈的先入后出特性,利用一个栈来存储链表内的值,然后在添加到ArrayList中。 下面是JAVA算法实现: public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ArrayList<Integer> list = new ArrayList<>()

gaozhuang63的博客 266

2026 年第十六届MathorCup数学应用挑战赛题目C题中老年人群高血脂症的风险预警及干预方案优化 2026妈妈杯 详细思路、代码、模型

2026 年第十六届MathorCup数学应用挑战赛题目 C题中老年人群高血脂症的风险预警及干预方案优化 人口老龄化进程的持续加快,使得40岁及以上中老年人群成为 慢性病防控的核心群体,其中高血脂症的发病率呈逐年攀升态势, 已成为诱发冠心病、脑梗死等心脑血管疾病的重要危险因素,严重 威胁中老年群体的心血管健康与生活质量,也加重了基层医疗的慢 病管理负担。从中医体质学视角来看,体质禀赋与偏颇是疾病发生 发展的内在根基,其中痰湿体质为中老年高血脂症的高发体质类型, 该体质人群存在痰湿内蕴、脾胃运化失常、水湿代谢

YOLO 756

【即插即用模块】注意力篇 | TGRS 2025 | SPR:显著性比例协调,注意力聚焦,先抓差异再精准特征融合!

本文提出SPRMamba网络中的显著性比例协调模块(SPR),用于解决遥感变化检测中非显著变化区域的识别难题。该模块通过差异提取→显著性识别→比例融合的三步流程,动态平衡显著与非显著特征表示。SPR包含空间滤波(SF)和上下文记忆(CMM)两个子模块,分别基于统计特征和深度学习自动区分特征差异中的显著性成分。实验表明,SPR能有效抑制背景噪声干扰,提升边缘检测精度,且随着模块数量的增加,模型性能持续改善。该模块计算成本低,可直接嵌入双输入特征融合场景,适用于各类需要动态特征平衡的视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 367

剑指offer:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

问题描述: 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解题思路: 链表结构体如下: struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * };...

guoxiaoxuan1997的博客 324

[deprecated]第九章:SVM机制: 9-2 Linux HMM原理与实现详解

Linux内核HMM(异构内存管理)子系统为异构计算平台提供统一内存管理机制,支持CPU与GPU等设备共享虚拟地址空间,实现零拷贝数据访问。其核心功能包括:1)统一虚拟地址空间,设备可直接访问CPU进程内存;2)实时页表同步与失效通知,确保地址空间一致性;3)支持设备端page fault处理;4)管理多种内存类型(系统内存、设备私有内存等)。HMM通过mmu_interval_notifier机制感知地址空间变化,提供标准API简化驱动开发,显著提升异构计算性能和数据传输效率。

图形/计算GPU的驱动与虚拟化技术分享园地 2547

Java之《剑指Offer》【经典详解】:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

1. 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 题目分析: 1.逆序输出,首先想到的是栈的进出 2.返回一个ArrayList的集合,将元素添加进去,然后返回集合对象 2. 代码实现 import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTailToHead(.

CodingLJ 850

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

剑指offer:3. 从尾到头打印链表

3. 从尾到头打印链表 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 题目链接 Java实现: /** * @Classname Solution.replaceSpace * @Date 2019/5/29 11:07 * @Created by 超 */ /** * public class ListNode { * int val...

超哥的一亩三分地 264

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

剑指offer——3、从尾到头打印链表,输入一个链表,按链表从尾到头的顺序返回一个ArrayList

题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路: 将链表里的值放到Stack栈中,利用栈先进后出的规则。所以在弹栈到ArrayList中,即可。 代码如下: import java.util.ArrayList; import java.util.Stack; class test03 { public static void main(String[...

weixin_42924812的博客 245

剑指Offer——从尾到头打印链表

1、题目描述   输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 2、代码实现 1 package com.baozi.offer; 2 3 import java.util.ArrayList; 4 import java.util.Stack; 5 6 /** 7 * @author BaoZi 8 * @create 2019...

weixin_30654419的博客 66

剑指Offer 从尾到头打印链表 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解答 其实直接用ArrayList不创建LinkedList也能对,记得是LinkedList增删快一些,然而实际代码差别似乎不大(上面是LinkedList) /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.

北鹤M的代码手账 316

剑指offer 01 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 本文的解题方法,有两种思路;一种是用栈的方法;另一种是用递归的方法 栈的方法如下 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * ...

qq_43170213的博客 160

【剑指offer】从尾到头打印链表

题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayListArrayListArrayList。 思路:单链表只能从头到尾遍历,而题目要求从尾到头打印,因此联想到栈先进后出这样一个特性,可以将从头到尾遍历的节点存入栈,然后依次出栈将值保存到顺序容器中,返回,这样就实现了从尾到头的顺序 /** * struct ListNode { * int val; * ...

小二笙的博客 262

剑指offer 3 从尾到头打印链表

题目 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解题思路:方法一 两个数组 import java.util.ArrayList; public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { Ar...

Wyongkang的博客 239

从尾到头打印链表

紧接着又练习了一个链表的操作——从尾到头打印链表。     牛客网AC地址:http://www.nowcoder.com/books/coding-interviews/d0267f7f55b3412ba93bd35cfa8e8035?rp=1     《剑指offer》面试题5:从尾到头打印链表     题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值。     链表的节点

心若无尘 3433

【剑指offer】3.将链表从尾到头的顺序返回一个ArrayList

问题描述: 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 python代码实现: list(srart,end,step) list 的下标可以接收三个参数,分别是 start (起始下标), end (结束下标) , step(步长)。star和stop的空值代表列表的头和尾,依据step的是正还是负来颠倒 step为正数时(step>0),代表从左往右切片; 当st...

weixin_43439235的博客 195
上一篇: (剑指offer题目2)字符串每个空格替换
下一篇: Linux在执行命令并将结果赋值给变量
elimuzi
博客等级 码龄10年 56粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值