news 2026/4/18 6:18:27

力扣-奇偶链表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣-奇偶链表

思路分析

  1. 用两个指针分别指向「奇数链的尾节点」(odd)和「偶数链的尾节点」(even);
  2. 遍历链表,依次将奇数节点接入奇数链、偶数节点接入偶数链;
  3. 遍历结束后,将偶数链的头节点拼接到奇数链的尾部,完成重排。

步骤拆解(以1→2→3→4→5→null为例)

  1. 初始化:
    • odd = head(奇数链头 / 尾,初始为位置 1 的节点);
    • even = head.next(偶数链头 / 尾,初始为位置 2 的节点);
    • evenHead = even(保存偶数链的头节点,用于最后拼接);
  2. 遍历链表(终止条件:even == null 或 even.next == null):
    • 奇数链后移:odd.next = even.next → odd = odd.next(odd 从 1→3);
    • 偶数链后移:even.next = odd.next → even = even.next(even 从 2→4);
  3. 拼接:odd.next = evenHead(将偶数链拼到奇数链尾部);
  4. 返回原头节点head(奇数链头就是最终链表头)。

代码实现

publicListNodeoddEvenList(ListNodehead){// 边界条件:空链表 或 只有一个节点,直接返回if(head==null||head.next==null){returnhead;}// 1. 初始化指针ListNodeodd=head;// 奇数链尾指针(初始为位置1)ListNodeeven=head.next;// 偶数链尾指针(初始为位置2)ListNodeevenHead=even;// 保存偶数链的头节点(关键:最后拼接用)// 2. 遍历分离奇偶链(终止条件:even为空 或 even.next为空)while(even!=null&&even.next!=null){// 奇数链后移:接下一个奇数节点(even.next是位置3)odd.next=even.next;odd=odd.next;// 偶数链后移:接下一个偶数节点(odd.next是位置4)even.next=odd.next;even=even.next;}// 3. 拼接:偶数链拼到奇数链尾部odd.next=evenHead;// 4. 返回原头节点(奇数链头就是最终头)returnhead;}

复杂度分析

  • 空间复杂度 O (1),仅用了额外的指针变量;
  • 时间复杂度:O (n),每个节点仅遍历一次。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/8 22:41:30

GB28181视频监控平台构建:架构解析与部署实践

GB28181视频监控平台构建:架构解析与部署实践 【免费下载链接】wvp-GB28181-pro 项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro 平台架构设计原理 GB28181视频监控平台基于SIP协议栈构建,采用分布式架构设计,实…

作者头像 李华
网站建设 2026/3/24 5:16:57

效果惊艳!OpenDataLab MinerU打造的学术论文解析案例展示

效果惊艳!OpenDataLab MinerU打造的学术论文解析案例展示 1. 引言:轻量级模型如何实现高精度文档理解 在当前大模型动辄数十亿甚至上百亿参数的背景下,如何在资源受限环境下实现高效、精准的文档理解成为工程落地的关键挑战。OpenDataLab/M…

作者头像 李华
网站建设 2026/4/10 15:01:47

Qwen-Image版本控制:随时回滚到稳定镜像版本

Qwen-Image版本控制:随时回滚到稳定镜像版本 你有没有遇到过这样的情况:公司刚上线的AI图像生成服务,突然因为一次镜像更新导致接口报错、用户无法出图?更糟的是,客户等着交稿,运维在查日志,开…

作者头像 李华
网站建设 2026/4/13 17:10:48

解锁网页视频下载神器:一键保存在线视频的终极方案

解锁网页视频下载神器:一键保存在线视频的终极方案 【免费下载链接】m3u8-downloader m3u8 视频在线提取工具 流媒体下载 m3u8下载 桌面客户端 windows mac 项目地址: https://gitcode.com/gh_mirrors/m3u8/m3u8-downloader 还在为无法下载网页视频而困扰吗&…

作者头像 李华
网站建设 2026/4/17 1:49:14

IndexTTS-2-LLM部署报错?kantts依赖问题解决实战教程

IndexTTS-2-LLM部署报错?kantts依赖问题解决实战教程 1. 引言 1.1 场景背景 在构建智能语音合成系统时,IndexTTS-2-LLM 因其融合大语言模型(LLM)与声学建模的能力,成为高质量文本转语音(TTS)…

作者头像 李华
网站建设 2026/4/18 5:42:05

RexUniNLU医疗文本处理:命名实体识别案例

RexUniNLU医疗文本处理:命名实体识别案例 1. 引言 随着自然语言处理技术在垂直领域的深入应用,医疗文本的结构化信息抽取成为智能医疗系统的核心能力之一。传统方法依赖大量标注数据,在实际场景中面临成本高、泛化差的问题。RexUniNLU 是一…

作者头像 李华