目录
题目
题解:双指针
- 思路:计算两条链表的长度,找到长度差,让长的链表多走差的值,返回第一个相等的元素
class Solution:
def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]:
count1,count2=0,0
pa=headA
pb=headB
while headA:# 计算链表 A 的长度
headA=headA.next
count1+=1
while headB:# 计算链表 B 的长度
headB=headB.next
count2+=1
if count1>count2:
count=count1-count2# 计算长度差
#让A链先走count步
while count!=0:
pa=pa.next
count-=1
elif count1<count2:
count=count2-count1# 计算长度差
#让B链先走count步
while count!=0:
pb=pb.next
count-=1
while pa and pb:# 同时遍历链表 A 和链表 B,找到第一个相等的节点
if pa==pb:
return pa
pa=pa.next
pb=pb.next
return None# 如果没有交点,返回 None
标签:count,相交,链表,headB,headA,count1,count2,160
From: https://www.cnblogs.com/lushuang55/p/17994436