跳过正文
  1. leetcode 题解/

52_两个链表的第一个公共节点

·53 字·1 分钟

类型:链表

  • 两个链表的第一个公共节点 💚

    https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/

    ❓ 输入两个链表头结点,找出它们的第一个公共结点。

    如图,c1 是它们的第一个公共结点。

    💡 双指针

    两个指针。一个从 A 出发,到了尾部之后接续到 B。一个从 B 出发,到了尾部之后接续到 A。

    class Solution:
        def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
            nodeA, nodeB = headA, headB
            while nodeA != nodeB:
                nodeA = nodeA.next if nodeA else headB
                nodeB = nodeB.next if nodeB else headA
            return nodeA

    时间复杂度:O(n),空间复杂度:O(1)