如果兩個鏈表相交,那麼相交點之後的長度是相同的
我們需要做的事情是,讓兩個鏈表從同距離末尾同等距離的位置開始遍歷。這個位置只能是較短鏈表的頭結點位置。
爲此,我們必須消除兩個鏈表的長度差
指針 pA 指向 A 鏈表,指針 pB 指向 B 鏈表,依次往後遍歷
如果 pA 到了末尾,則 pA = headB 繼續遍歷
如果 pB 到了末尾,則 pB = headA 繼續遍歷
比較長的鏈表指針指向較短鏈表head時,長度差就消除了
如此,只需要將最短鏈表遍歷兩次即可找到位置
巧妙的思想是 : 因爲相交 兩人 跑完自己的鏈表 再去跑 對方的鏈表 在交點(相遇點)時 兩人跑的路程是相同的