Solution
from typing import Optional
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]:
a, b = headA, headB
while a != b:
a = a.next if a else headB
b = b.next if b else headA
return a
if __name__ == "__main__":
# 构造相交链表
c1 = ListNode(8)
c2 = ListNode(4)
c3 = ListNode(5)
c1.next = c2
c2.next = c3
a1 = ListNode(4)
a2 = ListNode(1)
a1.next = a2
a2.next = c1
b1 = ListNode(5)
b2 = ListNode(6)
b3 = ListNode(1)
b1.next = b2
b2.next = b3
b3.next = c1
sol = Solution()
res = sol.getIntersectionNode(a1, b1)
print(res.val if res else None)