Loading...

两个链表的第一个公共结点

阅读 ...

在这里插入图片描述 在这里插入图片描述

求解代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
        // 初始化两个临时指针,分别指向两个链表的头节点
        ListNode temp1 = pHead1;
        ListNode temp2 = pHead2;

        // 只要两个指针不指向同一个节点,就继续遍历
        while (temp1 != temp2) {
            // - temp1遍历完自己的链表(为null),就切换到链表2的头节点继续遍历
            // - 否则,temp1正常后移
            temp1 = temp1 == null ? pHead2 : temp1.next;
            // - temp2遍历完自己的链表(为null),就切换到链表1的头节点继续遍历
            // - 否则,temp2正常后移
            temp2 = temp2 == null ? pHead1 : temp2.next;
        }

        // temp1和temp2要么指向第一个公共节点,要么都为null(无公共节点)
        return temp1;
    }
本文由 iamxurulin 原创发布,转载请保留原文链接。
最后更新于 2026-08-23 17:21:42
关于作者与文章

本文为 iamxurulin 原创技术文章。如对内容有疑问或建议,欢迎在评论区交流讨论。

Coder_Studio - 记录后端开发、算法与 AI 的成长之路