剑指Offer_从尾到头打印链表_03

COMSOL解的继承 COMSOL解的继承1. 应用场景2. 实现方法2.1. 添加研究步骤2.2. 引用研究 根据参考文献整理而来,原文见: http://blog.sina.com.cn/s/blog_4a0a8b5d010126w5.html https://www.zhihu.com/question/371867999/answer/1309194094 个人学习笔记,如有疏漏,欢迎补充 1. 应用场景 在COMSOL模拟中,一次求解之后往往遇到以下几种情况需要用到解的继承: 1)瞬态求解的继续运算。例如初始设定求解1 阅读详情
题目描述

输入一个链表,从尾到头打印链表每个节点的值。

/*链表结构
*    public class ListNode {
*        int val;
*        ListNode next = null;
*
*        ListNode(int val) {
*            this.val = val;
*        }
*    }
*
*/

import java.util.ArrayList;
import java.util.Collections;
import java.util.Stack;
class ListNode
{
	int val;
	ListNode next = null;
	ListNode(int val)
	{
		this.val = val;
	}
}

public class Offer03 
{
	public static void main(String[] args)
	{
		ListNode[] node = new ListNode[10];
		for(int i = 0; i < 10; i++)
			node[i] = new ListNode(i);
		for(int i = 0; i < 9; i++)
			node[i].next = node[i+1];
		node[9].next = null;
		
		ArrayList<Integer> list = printListFromTailToHead3(node[0]);
		for(int i = 0; i < list.size(); i++)
		{
			System.out.println(list.get(i));
		}
	}
	
	public static ArrayList<Integer> printListFromTailToHead(ListNode listNode) 
	{//解法一:遍历链表,把链表中的值依次添加到ArrayList类型的列表里;
		//然后逆序遍历这个列表,将值依次添加到另一个ArrayList列表里;
		ArrayList<Integer> list = new ArrayList<Integer>();
		ArrayList<Integer> list2 = new ArrayList<Integer>();
		while (listNode != null) 
		{
			list.add(listNode.val);
			listNode = listNode.next;
		}
		for (int i = list.size() - 1; i >= 0; i--) 
		{
			list2.add(list.get(i));
		}
		return list2;
	}
	
	public static ArrayList<Integer> printListFromTailToHead2(ListNode listNode) 
	{//解法二:遍历链表,把链表中的值依次添加到ArrayList类型的列表里;
		//利用java.util.Collections类提供的反转集合函数,将列表逆序。
		ArrayList<Integer> list = new ArrayList<Integer>();
		Stack<Integer> stack = new Stack();
		
		while (listNode != null) 
		{
			stack.push(listNode.val);
			listNode = listNode.next;
		}
		
		while(!stack.isEmpty())
			list.add(stack.pop());
		
		return list;
	}
	
	public static ArrayList<Integer> printListFromTailToHead3(ListNode listNode) 
	{//解法三:遍历链表,把链表中的值依次添加到stack类型的栈里;
		//新建一个ArrayList类型的列表,依次添加从栈里弹出来的值。
		ArrayList<Integer> list = new ArrayList<Integer>();
		while (listNode != null) 
		{
			list.add(listNode.val);
			listNode = listNode.next;
		}
		Collections.reverse(list);
		return list;
	}
	
	
}

查阅java文档发现,java.util.stack类是遗留类,最好使用ArrayDeque类替代。

GJB设计开发各阶段的文件和记录要求 阅读详情

相关推荐

Zabbix-01简单导入MIB文件并测试

这里写自定义目录标题安装 MIB文件启用MIB文件测试MIB文件 MIB文件 MIB代表管理信息库。 MIB文件允许您使用OID(对象标识符)的文本表示。 ##例如: ifHCOutOctets 是OID【1.3.6.1.2.1.31.1.1.1.10】的文本表示 安装 MIB文件 在基于Debian的系统上: # apt install snmp-mibs-downloader # download-mibs 在基于RedHat的系统上: # yum install net-snmp-libs 启用M

lokibaba的博客 9178

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

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

Veggie的博客 1万+

DDM-MIMO-FMCW雷达速度模糊与解模糊MATLAB仿真

本文深入解析了DDM-MIMO-FMCW雷达中的速度模糊现象及其解模糊方法,通过MATLAB仿真详细展示了相位编码解调、速度扩展算法和混合波形设计三大解决方案。文章还提供了参数配置、信号建模和结果可视化的实用技巧,并分享了工程实践中的避坑指南,帮助开发者高效解决雷达信号处理中的速度模糊问题。

weixin_31528001的博客 349

03 图解剑指Offer 从尾到头打印链表 Java题解

03 从尾到头打印链表 Java题解03 从尾到头打印链表 Java题解题目链接题目描述题解:图解:代码:复杂度 03 从尾到头打印链表 Java题解 题目链接 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 题解: 方法一://双列表 1.创建两个ArrayList list list1 2.头节点为null直接返回list 3.当ListNode不为null时while循环遍历链表,每一次循环list1添加链表节点的值,同时ListNode的next指向下一个节点。 4.for

Vaxue的博客 236

【项目立项管理、项目整合管理】30天通过软考高项-第二天

①项目或阶段的概述;②范围目标、范围的评估标准,证明达到完⼯标准的证据;③质量目标、项目和产品质量的评估标准、相关核实信息和实际里程碑交付日期以及偏差原因;④成本目标,包括可接受的成本区间、实际成本,产⽣任何偏差的原因等;⑤最终产品、服务或成果的确认信息的总结;⑥进度计划目标,包括成果是否实现项目预期效益:如果在项目结束时未能实现效益,则指出效益实现程度并预计未来实现情况;

weixin_42520723的博客 1000

树莓派5首次开机保姆级教程(无显示器通过VNC连接树莓派桌面)

选择 Interface Options > VNC > Yes 启用服务。2.在Windows电脑上安装VNC软件。重启树莓派:sudo reboot。3.使用VNC远程访问树莓派桌面。

qq_34184505的博客 2349

剑指offer之03:从尾到头打印链表arrayList

题目:从尾到头打印链表arrayList 题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路分析: (1)链表简介:链表是这样一种数据结构,它是线性表,表示逻辑有序,即即数据之间的顺序关系是由某种逻辑关系(如指针)来决定的,其结构如下图所示,每一个节点包括有当前节点的数值和下一个节点的地址。(后面我们在数据结构和算法中详细介绍链表) (2)逻辑分析:在上面的描述中我们知道链表的基本结构,那么,如何实现链表的反转呢?目前有两种思路 <1>链表...

尚拙的博客 506

完整IC设计流程解析&Makefile学习

本文介绍了decorder38项目的文件结构、自动化综合流程和Makefile使用方法。项目包含RTL到GDSII全流程文件,重点关注syn目录中的综合脚本。通过make dc命令运行综合流程,生成网表、约束和时序文件。关键报告如qor.rpt、area.rpt和min_vio.rpt用于分析综合质量、面积和时序。Makefile部分解释了其基本语法、IC设计中的典型结构,包括目标定义、命令执行和特殊声明,强调了其在自动化构建和依赖管理中的重要性。

m0_63352623的博客 855

剑指offer-03-从尾到头打印链表

题目描述* 剑指offer面试题5:从尾到头打印链表 输入一个链表的头结点,从尾到头打印出每个结点的值 解决方案一:首先遍历链表的节点后打印,典型的“后进先出”,可以使用栈来实现这种顺序。 解决方案二:栈的本质就是递归,直接使用递归的方式,打印一个节点的时候先打印它后面的节点,再打印该节点自身,实现反向打印 解决方案三:遍历链表,把链表中的元素复制到ArrayList中,然后逆序打印ArrayLi...

小强博客 225

Openclaw 附录B 常用Skills清单

核心作用支持URL、网页、PDF、图片、音频和YouTube视频的摘要与字幕提取,由OpenClaw创始人@steipete开发的官方内置Skill。安装⚠️说明:原推荐的summarize未在ClawHub验证到,YouTube字幕提取功能已内置于summarize中。使用场景“提取这个2小时Next.js教程视频的核心代码逻辑,按章节整理成学习笔记”推荐指数:⭐⭐⭐⭐。

Maynor的博客 857

落地实战!Python构建地方政府公开数据爬虫:政策/数据/规划全维度抓取(附反爬适配+数据清洗)

政务公开数据爬虫的核心不是“技术多先进”,而是“适配政务网站的特性”——慢一点、稳一点、合规一点,比追求抓取速度更重要。多地市爬虫集群:通过配置文件管理不同地市的URL规则,实现全省/全国政务数据抓取;图片表格识别:结合OCR工具(如pytesseract)识别政务网站的图片表格,转换为结构化数据;数据可视化:将抓取的统计数据导入PowerBI/Matplotlib,实现区域发展趋势分析。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1799

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

题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 说明:本题目包含复杂数据结构ListNode,点此查看相关信息 解答 读完题第一想法就先正序存储链表,再从尾到头遍历 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * }

双人与余的博客 144

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

2024年12月中国电子学会青少年软件编程(Python)等级考试试卷(六级)答案 + 解析

伶俐角少儿编程 729

剑指Offer-03从尾到头打印链表

1.题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 2.代码 python版本 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def revers

STAR 178

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

剑指offer-03从尾到头打印链表

题目描述 输入一个链表,从尾到头打印链表每个节点的值。 代码 function Node(element) { this.element=element; this.next=null; } function LList() { this.head=new Node('head'); this.find=find; this.insert=inse...

GoodAll_K的博客 167

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

第3题 从尾到头打印链表 题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> a; stack<int> s; while(head != NULL){ s.push(head->val

KazeHelloWorld的博客 61

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 总结:提到逆向,用stack存结点,用vector储存链表值返回 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), ...

tc950318的博客 124

剑指Offer-03.从尾到头打印链表

从尾到头打印链表 题目 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路 1.栈的使用 看到题的第一想法就是使用栈然后逆转 import java.util.ArrayList; import java.util.Stack; public class Solution { public ArrayList<Integer> printListFromTai...

菜不是原罪 386

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

题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 递归法 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; ...

89

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

题目描述   输入一个链表,按链表值从尾到头的顺序返回一个 ArrayList 。 一、解题思路

Daycym的博客 264

剑指offer03 从尾到头打印链表

题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 代码一、 自己写的:先反转链表,接着从前向后打印。时间复杂度O(n) public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ListNode ...

行走巨人国 145

从尾到头打印链表--剑指offer03(java实现)

题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解题思路 两个ArrayList,将两边按顺序加入到一个,再输出到另一个,最后输出即可 源码 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * ...

妖言的博客 181

【剑指offer-03】20190805/01 从尾到头打印链表

【剑指offer-03】从尾到头打印链表 考点:链表 时间限制:1秒 空间限制:32768K 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 思路: 一共有两种思路。 第一种思路: 通过辅助栈先进后出的性质,将数组倒序保存,然后再用另一个ArrayList保存倒序之后的数组,返回即可。 第二种思路: 借助递归实现(递归的本质还是使用了堆栈结构。 【这个代码放在其他思路】 ...

Lwolwo's 97

剑指offer-03. 从尾到头打印链表

题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解题思路: 链表元素存入vector中,再使用reverse反转。 代码实现: /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * ...

qq_34449717的博客 144

剑指offer 03从尾到头打印链表 Java

一、题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 示例1 输入 {67,0,24,58} 返回值 [58,24,0,67] 二、代码 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ import

雨渊的博客 193

从尾到头打印链表(剑指offer03)

题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ c...

weixin_41036461的博客 157
上一篇: 剑指Offer_替换空格_02
下一篇: java 泛型详解__泛型类,泛型接口,泛型方法__超详细易懂
coder__666
博客等级 码龄9年 42粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值