当前位置: 首页 > news >正文

力扣 24.两两交换链表中的节点

力扣《反转链表》系列文章目录

刷题次序,由易到难,一次刷通!!!

题目题解
206. 反转链表反转链表的全部 题解1
92. 反转链表 II反转链表的指定段 题解2
24. 两两交换链表中的节点两个一组反转链表
25. K 个一组翻转链表K 个一组反转题解3

一、题目

在这里插入图片描述

二、解题思路

对于反转指定段的链表,都采用将所需要反转的这一段单独摘出来,先记录好这段的上一个节点和下一个节点。将需要反转的部分反转好之后,再将其正确链接回原链表,参照下图。
在这里插入图片描述
创建一个哑节点(dummy node),它的next指向头节点,这样可以简化边界条件的处理。接着,使用一个while循环来遍历链表,采用两个每次循环交换一对相邻的节点。最后,返回哑节点的next,即交换后的链表的头节点。
注意:对 cur 进行赋值前,必须检验 pre 是否为 null,不是 null 才可以对 cur 进行赋值。

三、代码

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode swapPairs(ListNode head) {ListNode dummy = new ListNode(0, head);// 创建一个哑节点(dummy node),它的next指向头节点,这样可以简化边界条件的处理ListNode ppre = dummy;ListNode pre = dummy.next;if (pre == null) {return head;}ListNode cur = pre.next;while (cur != null) {ListNode nxt = cur.next;// 保存“下一个节点”cur.next = pre;// 反转pre.next = nxt;// 连回原链表的“下一个节点”ppre.next = cur;// 连回原链表的“上一个节点”ppre = pre;pre = pre.next;if (pre == null) {break;} else {cur = pre.next;}}return dummy.next;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 华为杯”第十二届中国研究生数学建模竞赛-B题: 数据的多流形结构分析(续)
  • 云岚到家 第一天实战总结
  • 云栖实录 | 阿里云 OpenLake 解决方案重磅发布:多模态数据统一纳管、引擎平权联合计算、数据共享统一读写
  • 高等数学的后续课程
  • vue3开发中易遗漏的常见知识点
  • 公安局软件管理平台建设方案和必要性,论文-3-———未来之窗行业应用跨平台架构
  • HttpServletRequest简介
  • Flat File端口更新:如何实现嵌套结构
  • ubuntu 24.04 输入设备显示没有,系统没有找到电脑麦克风
  • mysql学习教程,从入门到精通,SQL 删除表(DROP TABLE 语句)(20)
  • Gnu Radio抓取WiFi信号,流程图中模块功能
  • Qt QFileDialog使用方法
  • 多重身份验证:保护数字生活的防线
  • 函数计算 FC:首发 GPU 极速模式,更弹性、更降本
  • HarmonyOS Next开发----使用XComponent自定义绘制
  • 《剑指offer》分解让复杂问题更简单
  • angular组件开发
  • happypack两次报错的问题
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript异步流程控制的前世今生
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • React组件设计模式(一)
  • 服务器之间,相同帐号,实现免密钥登录
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 用Visual Studio开发以太坊智能合约
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 智能网联汽车信息安全
  • #define,static,const,三种常量的区别
  • #if和#ifdef区别
  • (2)Java 简介
  • (20050108)又读《平凡的世界》
  • (3)(3.5) 遥测无线电区域条例
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (C语言)共用体union的用法举例
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (纯JS)图片裁剪
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (四) Graphivz 颜色选择
  • (五)IO流之ByteArrayInput/OutputStream
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转载)(官方)UE4--图像编程----着色器开发
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .net 设置默认首页
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • /etc/fstab 只读无法修改的解决办法
  • /tmp目录下出现system-private文件夹解决方法
  • ??myeclipse+tomcat
  • @RestControllerAdvice异常统一处理类失效原因
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [2010-8-30]