思路:(hashmap超时了)
- 指针 pA 指向 A 链表,指针 pB 指向 B 链表,依次往后遍历
- 如果 pA 到了末尾,则 pA = headB 继续遍历
- 如果 pB 到了末尾,则 pB = headA 继续遍历
- 比较长的链表指针指向较短链表head时,长度差就消除了
- 两链表走过的路总长都是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