力扣 160 相交鍊錶 雙指標解法

2021-10-06 19:30:15 字數 427 閱讀 3510

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

我們需要做的事情是,讓兩個鍊錶從同距離末尾同等距離的位置開始遍歷。這個位置只能是較短鍊錶的頭結點位置。

為此,我們必須消除兩個鍊錶的長度差

指標 pa 指向 a 鍊錶,指標 pb 指向 b 鍊錶,依次往後遍歷

如果 pa 到了末尾,則 pa = headb 繼續遍歷

如果 pb 到了末尾,則 pb = heada 繼續遍歷

比較長的鍊錶指標指向較短鍊錶head時,長度差就消除了

如此,只需要將最短鍊錶遍歷兩次即可找到位置

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

力扣 160 相交鍊錶

一 題目描述 編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交。示例 1 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node wi...

力扣 160 相交鍊錶

寫乙個程式,找到兩個單鏈表相交的起始節點 該題目來自力扣題庫 示例 在節點 c1 開始相交 示例1 輸出 reference of the node with value 8 相交節點的值為 8 注意,如果兩個列表相交則不能為 0 從各自的表頭開始算起,鍊錶 a 為 4,1,8,4,5 鍊錶 b 為...

力扣160相交鍊錶

編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交。示例 1 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with valu...