def get_intersection_node(headA, headB):
a, b = headA, headB
while a != b:
a = a.next if a else headB
b = b.next if b else headA
return a
Explanation: Pointers traverse both lists. They meet at intersection or return None if no intersection.
β± O(n + m) | πΎ O(1)