160:Intersection of Two Linked Lists
題目
給定兩個單向鏈結串列(Linked List)headA 和 headB。
可能存在一個節點,使兩個鏈表 從這個節點開始相交(即後面的節點完全共用)。
請找出 第一個相交節點,如果沒有相交,返回 null。
解題思路
使用兩個指標 pA 和 pB 分別從 ListA 和 ListB 開始遍歷
遍歷規則:
1. 每次走一步 (pA = pA.next, pB = pB.next)
2. 如果走到末尾,跳到另一個鏈表的頭部繼續
當 pA == pB → 找到相交點或同時為 null → 沒有相交
巧妙之處:
兩個指標最終走過的總長度相同 → 保證在相交點相遇