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

Day78 | 灵神 | 反转链表 两两交换链表中的节点

Day78 | 灵神 | 反转链表 两两交换链表中的节点

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

24. 两两交换链表中的节点 - 力扣(LeetCode)

思路:

这道题就是下面这道题的k==2的情况

25. K 个一组翻转链表 - 力扣(LeetCode)

基本思路和92. 反转链表 II - 力扣(LeetCode)一样

用第一个例子[1,2,3,4,5]作为说明,就是说,步骤为

1.建立虚拟头结点t,作为要反转部分[1,2]的前一个节点,以后每反转一部分都要更新和保存反转部分的前一个节点

2.再次建立一个临时节点q保存要反转部分的后一个结点[3]

3.建立两个指针指向要交换的两个节点,cur指向2,pre指向1

4.反转指针把2指向1

5.把反转部分接到原来链表上

  • 5.1 [1]的next即pre的next指向[3],即q,这是把后面接好了
  • 5.2 虚拟头结点t的next指向[2],即cur,这是把前面接好了

6.更新并保存t,把t更新为1,即pre,因为pre是下一段要反转部分[3,4]的前一个节点

完整代码:

class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        //1.建立虚拟头结点
        ListNode * t=new ListNode;
        t->next=head;
        ListNode * res=t;
        while(t&&t->next&&t->next->next)
        {
            //2,3步
            ListNode *pre=t->next;
            ListNode *cur=pre->next;
            ListNode *q=cur->next;
            //4
            cur->next=pre;
            //5.
            pre->next=q;
            t->next=cur;
            //6.
            t=t->next->next;
        }
        return res->next;
    }
};

相关文章:

  • 每天学一个 Linux 命令(9):useradd/userdel
  • EDI传输中的OFTP AS2
  • 【模拟CMOS集成电路设计】电荷泵(Charge bump)设计与仿真(示例:栅极开关CP+轨到轨输入运放+基于运放CP)
  • CentOS 7 安装 Kubernetes 1.28.2 集群
  • 企业如何构建风控合规体系?
  • LLM - 推理大语言模型 DeepSeek-R1 论文简读
  • python接口自动化测试:接口数据依赖
  • 蓝桥杯备考---》贪心算法之矩阵消除游戏
  • 理解Java数据库编程之JDBC
  • 用户模块——业务校验工具AssertUtil
  • 10-SpringBoot3入门-整合TX(事务)
  • 【插件】美化html标签的class 属性上的 tailwindcss 类;Prettier-plugin-tailwindcss
  • 数据链路层协议--以太网协议
  • 结构型设计模式。持续更新
  • ToolsSet之:梯度色板
  • MySQL与Redis数据一致性保障方案详解
  • Langflow深度解析:从核心概念到开发实践
  • Vitis HLS 学习笔记--块级控制(IDE 2024.1 + 执行模式 + 默认接口实现)
  • USB——删除注册表信息
  • UE5学习笔记 FPS游戏制作33 换子弹 动画事件
  • 网站设计)/提升seo排名
  • 建设手机银行app下载/百度seo优化系统
  • ps做网站首页怎么/免费外链网站seo发布
  • 江苏网站建设开发/我想做电商怎么加入
  • 国内做网站最大的公司/南京网站seo
  • wordpress 转载 插件/百度seo快速排名优化软件