/**
* 剑指 Offer 24. 反转链表
* @author wsq
* @date 2020/09/09
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
限制:
0 <= 节点个数 <= 5000
链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof
*/
package notsubmit;
public class ReverseList {
/**
* 采用双指针的方式实现链表的反转
* 也可以尝试通过栈的方式实现,不过需要O(n)的额外空间使用
* @param head
* @return
*/
public ListNode reverseList(ListNode head) {
if(head == null){
return head;
}
ListNode preNode = head;
ListNode lastNode = head.next;
while(lastNode != null) {
ListNode tmpNode = lastNode.next;
lastNode.next = preNode;
preNode = lastNode;
lastNode = tmpNode;
}
head.next = null;
return preNode;
}
/**
* 打印链表
* @param head
*/
public static void printList(ListNode head) {
while(head != null) {
System.out.print(head.val);
if(head.next != null) {
System.out.print("->");
}
head = head.next;
}
}
public static void main(String[] args) {
ListNode head = new ListNode(1);
ListNode node1 = new ListNode(3);
ListNode node2 = new ListNode(2);
head.next = node1;
node1.next = node2;
System.out.println("链表反转前:");
printList(head);
ReverseList rl = new ReverseList();
ListNode ans = rl.reverseList(head);
System.out.println("\n链表反转后:");
printList(ans);
}
}
相关推荐
ISP工程师实战笔记:5种Demosaic算法优缺点对比(含Hamilton/DFPD代码片段)
本文从ISP工程师实战角度,深入对比了五种经典Demosaic算法的优缺点。文章详细剖析了双线性插值、Hamilton、DFPD、DLMMSE和GBTF等算法的核心思想、实现差异与性能表现,并提供了Hamilton和DFPD算法的关键代码片段。重点探讨了在图像信号处理流水线中,如何根据画质、计算复杂度和功耗等工程约束进行算法选型与权衡。
剑指Offer 24:反转链表
剑指Offer 24:反转链表 2022年2月20日 文章目录剑指Offer 24:反转链表一、问题描述二、问题分析三、解题代码总结 一、问题描述 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 限制: 0 <= 节点个数 <= 5000 二、问题分析 问题的核心在于如何反转链表。 由于链表具有单向性
libnice和coturn这两个库有交叉实现的地方,具体有啥区别?
TurnAdmin:是一个TURN的管理工具,此工具能被用来管理用户账号的增删改查。 TurnServer:是TURN和STUN的服务器实现。 Turnutils_uclient: 模拟多个UDP、TCP、TLS或DTLS客户端 Turnutils_peer: 一个简单的无状态UDP-ECHO服务器,用作中继模式中的最终服务器 Turnutils_stunclient: 一个简单的STUN客户端例子 Turnutils_rfc5769check: 检查STUN/TURN协议实现的正确性。 我们..
剑指offer面试题24:反转链表
面试题24:反转链表 题目描述 定义一个函数,输入一个链表的头节点,反转链表后,输出新链表的表头。 如上图,假设经过若干操作,我们已经把节点h之前的指针调整完,这些节点的next都指向前一个节点。接下来把i的next指向h。但是这时无法在链表中遍历到节点j。为了避免在节点i处断开,需要在调整节点i的next之前,把节点j保存下来。 也就是说,我们在调整节点i的next指针时,除了知道节点i本身,还需要知道前一个指针,因此我们需要把节点i的next指向节点h。同时,我们还需要事先保存i的下一个节点j,以防止
恭喜,恭喜,iMouse爱鼠XP版全面发布测试,苹果手机自动化测试必须
电脑控制苹果手机,免越狱,免签名,自动化测试
【VTKExamples】PolyData-1:: CellEdgeNeighbors & CellPointNeighbors 检索Cell边相邻的Cells & 检索Cell点相邻的Cells
本文主要分享VTKExample中两个样例CellEdgeNeighbors.cxx & CellPointNeighbors.cxx,了解VTK中如何对Cell进行邻域检索!输入模型 基于Edge检索结果 基于Point检索结果目录前言1. 基于Edge检索核心代码2.基于Point检索核心代码3.基于Edge检索样例代码4. 基于Point检索样例代码1.
剑指offer24 反转链表
剑指offer24-AcWing-35. 反转链表 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 样例 输入:1->2->3->4->5->NULL 输出:5->4->3->2->1->NULL 思路: 初始化一个新的头节点new_head,然后用尾插法把原始链表...
接入 AI 之后,为什么测试和排障还是没有真正变快?
如果你们准备做平台型 AI,不要先从聊天入口开始想。先把真实数据采上来;再把链路、版本、快照、报告这些核心对象建稳;再把历史沉淀、反馈、检索能力补齐;最后再让 AI 围绕这些对象去工作。这样做出来的 AI,才更容易从“看起来聪明”走向“真正省时间”。
剑指offer24:反转链表 python
剑指offer24:反转链表 python题目描述解法1. 使用队列2. 双指针3.递归思考与感想 题目描述 解法 1. 使用队列 先遍历整个链表并用一个队列存储(append)node,然后使用pop的性质,先进去的后出来,更新到最后一个节点的next上。 class Solution: def reverseList(self, head: ListNode) -> ListNode: if head is None: return None
【Python深度学习】做深度学习训练时,如果数据集太大,无法一次性加载进GPU,应该如何做?
方法核心思想优点缺点适用场景实现复杂度小批量训练(Mini-Batch Training)与数据加载器(DataLoader)将数据集划分为小批量,每次只加载一个小批量到GPU中进行训练。- 易于实现- 是深度学习的标准做法- 支持多进程加载- 内存可能成为瓶颈- 需要调整批量大小避免内存不足适用于大部分场景低数据分片与分布式训练(Data Sharding & Distributed Training)将数据集分片,每个GPU或节点处理其中一部分数据,分布式训练。
基于simulink的BMS系统中电池单体故障隔离与恢复建模
本文介绍了使用Simulink构建BMS电池单体故障诊断与容错控制模型的方法。主要内容包括:1)搭建12串锂电池组模型;2)实现单体故障注入(过压、断线等);3)设计故障诊断与隔离模块(采用Stateflow状态机);4)开发恢复判断逻辑(需满足电压、温度等条件);5)系统监控与仿真设置。文章还提供了工程实践建议,如防环流设计、通信冗余等,并指出进阶方向(多故障处理、AI预警等)。该模型适用于新能源汽车、储能系统的BMS设计,可提高系统可靠性和安全性。
剑指 Offer 24. 反转链表 - 力扣(LeetCode)
剑指 Offer 24. 反转链表 - 力扣(LeetCode)
UNet改进(12):融合小波变换与注意力机制的图像分割新方法
本文提出了一种改进的WaveletAttentionUNet架构,通过结合小波变换和注意力机制来增强传统UNet的多尺度特征提取能力。该网络使用分组卷积模拟小波分解,将输入通道扩展为4个子带(LL、LH、HL、HH),并通过通道注意力机制自适应加权各子带特征。网络保留了UNet的编码器-解码器结构,在关键位置集成了WaveletAttention模块。实验证明该方法在医学图像分割等任务中能更好地保持边缘细节和复杂纹理特征,同时保持计算效率。
《剑指offer》24--反转链表[C++]
输入一个链表,反转链表后,输出新链表的表头。
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
剑指offer24. 反转链表 p142
剑指offer24. 反转链表 p142 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。 ListNode *ReverseList(ListNode *pHeadList) { if (pHeadList == NULL) return NULL; ListNode *preNode = NULL; // 前驱节点 ListNode *pN...
华为的C语言编程规范.pdf
华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。
剑指offer 24. 反转链表
剑指offer 24. 反转链表 题目描述 解题思路 注意,这种链表翻转题,一定要自己举个例子把链表画出来,然后模拟翻转的过程。 class Solution { //翻转从head开始的链表,并返回翻转后的头结点 public ListNode reverseList(ListNode head) { //base case if (head == null || head.next == null) return head; //新链表
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
248



被折叠的 条评论
为什么被折叠?



