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

链表-两两交换链表中的结点

24.两两交换链表中的结点

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

在这里插入图片描述
输入:头结点
输出:交换后的结点
思路
一次取出来两个结点,进行交换,然后结束条件是当前结点之后只有一个结点或者没有结点

/*** 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);ListNode temp = dummy;while(temp.next != null && temp.next.next != null){ListNode node1 = temp.next;ListNode node2 = temp.next.next;temp.next = node2;node1.next = node2.next;node2.next = node1;temp = node1;}return dummy.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) {if(head == null || head.next == null){return head;}ListNode newHead = head.next;head.next = swapPairs(newHead.next);newHead.next = head;return newHead;}
}

相关文章:

  • Halcon 的基础用法
  • C语言基础(day0424)
  • AI打开潘多拉魔盒?当深度伪造成为虚假信息的核动力引擎
  • 仓库体系结构风格-笔记
  • Unity 资源合理性检测
  • 数据完整性的守护者:哈希算法原理与实现探析
  • Python中random库的应用
  • ​Janus Pro
  • C++跨平台开发要点
  • 面试题:Java程序CPU 100%问题排查指南
  • Mermaid 绘图指南(二)- 使用 Typora 与 Mermaid 绘制专业图表
  • Qt 使用 MySQL 数据库的基本方法
  • redis集群的三种部署方式
  • 《ATPL地面培训教材13:飞行原理》——第1章:概述与定义
  • unity Animation学习,精准控制模型动画播放
  • Android PackageManagerService(PMS)框架深度解析
  • [创业之路-386]:企业法务 - 知识产权的刑事风险
  • 2025年3月电子学会青少年机器人技术(四级)等级考试试卷-理论综合
  • SpringBoot入门实战(第八篇:项目接口-订单管理)完结篇
  • 第九节:性能优化高频题-首屏加载优化策略
  • 涉军民事案件类型日益增多,最高法新规明晰管辖争议问题
  • 第六次“太空会师”,神舟二十号3名航天员顺利进驻中国空间站
  • 神舟二十号3名航天员顺利进驻中国空间站
  • 猿辅导武汉公司一员工猝死,死者亲属:他原计划5月2日举行婚礼
  • 男子闲鱼卖手机卷入电诈案后成“网逃”续:警方已排除其作案嫌疑
  • 解放日报:上海一季度GDP同比增长5.1%,两大新动能助推经济“开门红”