news 2026/2/2 13:56:28

力扣-奇偶链表

作者头像

张小明

前端开发工程师

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/1/31 11:05:53

Windows网络监控利器:Npcap数据包捕获完全指南

Windows网络监控利器:Npcap数据包捕获完全指南 【免费下载链接】npcap Nmap Projects Windows packet capture and transmission library 项目地址: https://gitcode.com/gh_mirrors/np/npcap 在当今网络化时代,Windows平台下的网络监控和数据包捕…

作者头像 李华
网站建设 2026/2/1 11:46:25

Ubuntu16.04安装Python3.8完整教程:解决老旧系统兼容性问题

Ubuntu16.04安装Python3.8完整教程:解决老旧系统兼容性问题 你是不是也遇到过这种情况:公司里一批老服务器还在跑Ubuntu 16.04,系统自带的Python版本只有3.5,但新项目却要求Python 3.8?升级又怕出问题,编译…

作者头像 李华
网站建设 2026/1/30 15:44:32

Qwen3-VL-2B应用实战:教育课件自动生成系统

Qwen3-VL-2B应用实战:教育课件自动生成系统 1. 引言:AI驱动教育内容生产的变革 1.1 教育数字化转型的迫切需求 随着在线教育和混合式学习模式的普及,教师在日常教学中面临大量重复性、高强度的内容准备工作。传统课件制作依赖人工搜集素材…

作者头像 李华
网站建设 2026/2/2 1:43:01

Py-ART终极指南:5步掌握气象雷达数据处理核心技巧

Py-ART终极指南:5步掌握气象雷达数据处理核心技巧 【免费下载链接】pyart The Python-ARM Radar Toolkit. A data model driven interactive toolkit for working with weather radar data. 项目地址: https://gitcode.com/gh_mirrors/py/pyart 还在为复杂的…

作者头像 李华
网站建设 2026/1/30 6:19:50

GB28181视频平台实战:从零到精通的全流程部署指南

GB28181视频平台实战:从零到精通的全流程部署指南 【免费下载链接】wvp-GB28181-pro 项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro 想要快速搭建一个稳定可靠的国标视频监控平台吗?作为一款基于GB28181标准的开源项目&…

作者头像 李华
网站建设 2026/1/30 13:45:21

5分钟本地部署DeepSeek-R1 1.5B:零基础搭建逻辑推理引擎

5分钟本地部署DeepSeek-R1 1.5B:零基础搭建逻辑推理引擎 1. 引言 在当前大模型快速发展的背景下,如何在资源受限的设备上实现高效、安全的推理能力成为开发者关注的重点。DeepSeek-R1-Distill-Qwen-1.5B 是基于 DeepSeek-R1 蒸馏技术构建的小参数量语言…

作者头像 李华