力扣 160 相交鏈表——雙指針解法

如果兩個鏈表相交,那麼相交點之後的長度是相同的

我們需要做的事情是,讓兩個鏈表從同距離末尾同等距離的位置開始遍歷。這個位置只能是較短鏈表的頭結點位置。
爲此,我們必須消除兩個鏈表的長度差

指針 pA 指向 A 鏈表,指針 pB 指向 B 鏈表,依次往後遍歷
如果 pA 到了末尾,則 pA = headB 繼續遍歷
如果 pB 到了末尾,則 pB = headA 繼續遍歷
比較長的鏈表指針指向較短鏈表head時,長度差就消除了
如此,只需要將最短鏈表遍歷兩次即可找到位置


巧妙的思想是 : 因爲相交 兩人 跑完自己的鏈表 再去跑 對方的鏈表 在交點(相遇點)時 兩人跑的路程是相同的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章