七七老师の白日梦
首页项目归档照片墙音乐灵境说说杂谈友链关于
封面

相交链表:相交指针必相遇

写作时间:2026-07-15 11:22:59

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

需求

  • 返回相交起始点
  • 不存在返回null

实现

  • 双指针

代码

/**
 * 查找两个单链表的交点节点
 * @param headA 第一个链表头节点
 * @param headB 第二个链表头节点
 * @return 相交的起始节点,若无交点返回 null
 */
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) {
            return null;
        }

        ListNode a = headA;
        ListNode b = headB;

        // 使用双指针法遍历两个链表,当指针相等时找到交点
        while (a != b) {
            a = a == null ? headB : a.next;
            b = b == null ? headA : b.next;
        }

        return a;
    }
}

‍

avatar

七七老师

分享代码日常

RECOMMENDED

七七旧事:复盘并改变写博客的方式

2026-07-02 22:54:38

字母异位词

2026-07-04 22:22:08

寻找两个正序数组的中位数:合并与二分

2026-07-08 15:56:26

Table of Contents