这个题也太浪漫了! 双指针法:
- #两个链表长度分别为a、b, c为公共部分的长度, 当两个指针都走a+b-c时,就会相遇到公共点。
- #不会陷入死循环,因为即使没有相同节点,当走到末尾都是 None也会跳出循环
class Solution:
def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
curA,curB=headA,headB
while curA!=curB:
if curA:#遍历headA,走a步长
curA=curA.next
else:#重新定位到链表headB
curA=headB
if curB:#遍历headB,走b步长
curB=curB.next
else:#接着从headA走起
curB=headA
return curA