160. Intersection of Two Linked Lists Time: $O(n)$ Space: $O(1)$ C++JavaPython 1 2 3 4 5 6 7 8 9 10 11 12 13 14class Solution { public: ListNode* getIntersectionNode(ListNode* headA, ListNode* headB) { ListNode* a = headA; ListNode* b = headB; while (a != b) { a = a == nullptr ? headB : a->next; b = b == nullptr ? headA : b->next; } return a; } }; 1 2 3 4 5 6 7 8 9 10 11 12 13public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode a = headA; ListNode b = headB; while (a != b) { a = a == null ? headB : a.next; b = b == null ? headA : b.next; } return a; } } 1 2 3 4 5 6 7 8 9 10class Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]: a = headA b = headB while a != b: a = a.next if a else headB b = b.next if b else headA return a