代码
def get_intersection_node(self,headA, headB):
"""
使用双指针的方法来更简单地找到两个链表的第一个交叉点。双指针方法如下:
定义两个指针 pA 和 pB 分别指向两个链表的头部 headA 和 headB。
同时移动指针 pA 和 pB,当其中一个指针到达链表的末尾时,将其指向另一个链表的头部。
当两个指针相遇时,即为第一个交叉点
"""
if not headA or not headB:
return None
pA, pB = headA, headB
while pA != pB:
pA = pA.next if pA else headB
pB = pB.next if pB else headA
return pA
"""测试
# 创建两个链表
intersect_node = ListNode(8, ListNode(4, ListNode(5)))
headA = ListNode(4, ListNode(1, intersect_node))
headB = ListNode(5, ListNode(0, ListNode(1, intersect_node)))
# 输出第一个交叉点的值
print(get_intersection_node(headA, headB).val)
"""