如果兩個鍊錶相交,那麼相交點之後的長度是相同的
我們需要做的事情是,讓兩個鍊錶從同距離末尾同等距離的位置開始遍歷。這個位置只能是較短鍊錶的頭結點位置。
為此,我們必須消除兩個鍊錶的長度差
指標 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...