leetcode【简单】160、相交链表【简单】

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

思路:(hashmap超时了)

  1. 指针 pA 指向 A 链表,指针 pB 指向 B 链表,依次往后遍历
  2. 如果 pA 到了末尾,则 pA = headB 继续遍历
  3. 如果 pB 到了末尾,则 pB = headA 继续遍历
  4. 比较长的链表指针指向较短链表head时,长度差就消除了
  5. 两链表走过的路总长都是A+B(B+A),若不相遇,会一起走向None

在这里插入图片描述
-------------- B ------------------------ A-B--------------A-(A-B)=B
在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/qq_40707462/article/details/114155485