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

力扣刷题——143.重排链表

给定一个单链表 L 的头节点 head ,单链表 L 表示为:

L0 → L1 → … → Ln - 1 → Ln

请将其重新排列后变为:

L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → …

不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例 :

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

我们可以借助寻找链表中间节点和逆置链表的方法来将链表的后半部分逆置然后操作。为什么要这样做呢,因为题目中链表中节点顺序的变化实际上是这样的

我们可以发现,当我们逆置后半部分链表后,实际上就是遍历后半部分链表,将其中的节点逐个按照题目规则插入到前半部分链表中。即:

ListNode *FindMid(ListNode *head)
{
    ListNode *slow=head;
    ListNode *fast=head;
    while(fast&&fast->next)
    {
        slow=slow->next;
        fast=fast->next->next;
    }
    return slow;
}
ListNode *reverse(ListNode *p0)
{
    ListNode *p1=nullptr;
    ListNode *p2=p0;
    while(p2)
    {
        ListNode *p3=p2->next;
        p2->next=p1;
        p1=p2;
        p2=p3;
    }
    return p1;
}
    void reorderList(ListNode* head) {
        ListNode *mid=FindMid(head);
        ListNode *head2=reverse(mid);
        while(head2->next)
        {
            ListNode *nxt1=head->next;
            ListNode *nxt2=head2->next;
            head->next=head2;
            head2->next=nxt1;
            head=nxt1;
            head2=nxt2;
        }
        
    }

http://www.dtcms.com/a/82175.html

相关文章:

  • 如何利用环境监控看板提升工厂生产质量和效率
  • 《信息系统安全》(第一次上机实验报告)
  • 无需邀请码,实在智能发布通用智能体-实在Agent
  • 智能,触手可及:揭秘高灵活、高精度仿生机器手的操作与实现
  • django怎么配置404和500
  • 【PCIe 总线及设备入门学习专栏 3.1 -- PCIe 中为何只有 TLP 会被 Switch 和 RC 进行路由?】
  • 【实操】Mybatis-plus2.x升级到3.x
  • 基于深度学习的运动想象脑电信号分类研究
  • django如何配置使用asgi
  • LDAP从入门到实战:环境部署与配置指南(上)
  • 使用 Tkinter 编写简单计算器应用
  • JAVA多线程编程技术
  • 可发1区的超级创新思路:
  • LeetCode Hot100 刷题路线(Python版)
  • IoTDB写入数据后data目录为空
  • python爬虫解析器bs4,xpath,pquery
  • HR人员和组织信息同步AD域服务器实战方法JAVA
  • 基于ChatGPT、GIS与Python机器学习的地质灾害风险评估、易发性分析、信息化建库及灾后重建高级实践
  • 知识蒸馏:让大模型“瘦身“而不失智慧的魔术
  • Spark读取文件系统的数据(sbt打包测试)-入门级别Demo
  • AtCoder - arc086_d Shift and Decrement分析与实现
  • Python 3.13.2安装教程(安装包)Python 3.13.2 快速安装指南
  • Elasticsearch快速上手与深度进阶:一站式实战教程
  • 区块链技术在供应链管理中的应用与创新
  • istio 介绍-01-一个用于连接、管理和保护微服务的开放平台 概览
  • 如何在MCU工程中启用HardFault硬错误中断
  • AI提示词优化方法
  • Redis项目:缓存
  • OpenHarmony 开源鸿蒙北向开发——hdc工具安装
  • 大模型——让Word插上AI的翅膀:如何把DeepSeek装进Word