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

24 两两交换链表中的节点

题目链接: LeetCode

24 两两交换链表中的节点

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例 1:


**输入:**head = [1,2,3,4]
**输出:**[2,1,4,3]

示例 2:


**输入:**head = []
**输出:**[]

示例 3:


**输入:**head = [1]
**输出:**[1]

提示:

  • 链表中节点的数目在范围 [0, 100]
  • 0 <= Node.val <= 100

Related Topics: 递归, 链表

Likes: 2429 | Dislikes: 0

解题代码

/*** @author Charlie Zhang* @version v1.0* @date 2025-06-17 05:51:30* @description 24 两两交换链表中的节点*/
public class SwapNodesInPairs {public static void main(String[] args) {Solution solution = new SwapNodesInPairs().new Solution();}class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) {this.val = val;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}}/*** 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(-1);dummy.next = head;ListNode cur = dummy;while (cur.next != null && cur.next.next != null) {ListNode temp1 = cur.next; // 暂存下一个节点ListNode temp2 = cur.next.next.next; // 暂存下一个节点的next节点cur.next = cur.next.next; // 改变当前节点的next指针cur.next.next = temp1; // 改变当前节点的next节点的next指针cur.next.next.next = temp2; // 改变当前节点的next节点的next节点的next指针cur = cur.next.next; // 移动当前指针}return dummy.next;}}}
http://www.hskmm.com/?act=detail&tid=22816

相关文章:

  • 算法导论图论部分总结
  • 19 删除链表的倒数第 N 个结点
  • 浅谈 Bakas Trick / 不带删尺取 / 对顶栈
  • 聚变堆:中国BEST装置全面开建
  • web
  • 如何用pivotby函数实现数据透视(2)
  • 2025 年彩钢板厂家 TOP 企业品牌推荐排行榜,复合彩钢板,保温彩钢板,耐腐蚀彩钢板,净化彩钢板推荐这十家公司!
  • 251002
  • AT_agc020_d [AGC020D] Min Max Repetition
  • 题解:P7810 [JRKSJ R2] Upper
  • 记录自己被AWS坑了6刀
  • 如何用pivotby函数实现数据透视(1)
  • 10/1
  • 详细介绍:【数据结构】图论核心应用:关键路径算法详解——从AOE网到项目管理实战​
  • tnkstat3e-merge-0
  • JavaScript零基础入门速通(完整) - 指南
  • @RequestParam 什么时候可以省略?
  • 段页式管理方式
  • 推进电子设计革新:为什么模拟仿真正是核心助力?
  • 深入解析:前端开发,iframe 相关经验总结
  • list 容器 listr容器与vector容器 list 示例代码
  • advance 函数
  • *和 指针与地址 ++i和 i++
  • Playwright MCP浏览器自动化详解指南 - 教程
  • 指针和地址的示例运用代码
  • Python获取视频文件的各种属性信息
  • Arduino-Yun-物联网指南-全-
  • 2025雕塑厂家TOP企业品牌推荐排行榜,婚庆泡沫雕塑,玻璃钢,城市地标不锈钢,校园筑铜,道具,文旅,婚礼堂泡沫,直播间实景泡沫,水泥景观,商业美陈发光雕塑公司推荐!
  • Code--Blocks-和-C---应用开发-全-
  • 深入解析:(27)APS.NET Core8.0 堆栈原理通俗理解