Hot100:相交链表(Intersection of Two Linked Lists)双指针换头 O(1) 空间 ACERS 解析
副标题 / 摘要 相交链表的关键不是比较值,而是比较“节点引用/地址”。本文用 ACERS 结构把朴素哈希解法、长度对齐解法与最常用的“双指针换头”模板讲清楚,并给出多语言可运行实现(不修改链表、无环前提)。 预计阅读时长:10~14 分钟 标签:Hot100、链表、双指针 SEO 关键词:相交链表, 双指针换头, O(1) 空间, LeetCode 160, Intersection of Two Linked Lists 元描述:双指针分别走完 A 与 B 后交换起点,保证在 m+n 步内相遇于交点或同时到达 null;O(m+n)/O(1) 且不修改链表结构。 A — Algorithm(题目与算法) 题目还原 给你两个单链表的头节点 headA 和 headB,请你找出并返回两个单链表相交的起始节点。 如果两个链表不存在相交节点,返回 null。 补充约束: 题目数据保证整个链式结构中不存在环 返回结果后,链表必须保持其原始结构(不允许修改链表) 输入输出 名称 类型 描述 headA ListNode 链表 A 的头结点 headB ListNode 链表 B 的头结点 返回 ListNode / null 相交起始节点(同一节点对象),或 null 示例 1(图示场景) A: a1 -> a2 -> c1 -> c2 -> c3 B: b1 -> b2 -> b3 -> c1 -> c2 -> c3 输出: c1(返回节点引用,不是数值) 示例 2(不相交) A: 1 -> 2 -> 3 B: 4 -> 5 输出: null 目标读者 刷 Hot100,希望把链表双指针模板一次性吃透的学习者 经常把“节点值相等”误当作“节点相同”的初中级开发者 需要在工程里处理共享链式结构(共享后缀/共享节点)的工程师 背景 / 动机 这题看似简单,但它强迫你分清三个概念: ...