兩個鍊錶找第乙個公共節點

2021-10-21 04:19:21 字數 531 閱讀 6057

題目:輸入兩個鍊錶,找出它們的第乙個公共結點

思想:設兩個鍊錶分別為p,q.將p拼接到q之後,將q拼接到p之後,得到兩個新的等長鍊錶p1,q1.在從頭至尾依次對比兩鍊錶結點

第乙個相等的點即為所要找的結點

for examp:p= 1234    q= 98764

拼接之後為:p1=123498764

q1=987641234兩個鍊錶指標依次對比,可以很直觀的看出來第乙個結點為4

小注:王道《資料結構》鍊錶課後習題也有類似的題目,只不過他找的是共同字尾的第乙個結點。

演算法思想:分別從頭到尾遍歷,得到p與q的長度,算出長度之差為h,讓長的鍊錶的指標先走h個結點,在 比較兩個鍊錶的指標

若不同,兩指標分別指向後乙個結點,直至找到相同結點為止,返回結點。

兩個鍊錶第乙個公共節點

先讓長的鍊錶的指標先走長的之差的步數,兩個再一起走,如果相遇就是第乙個公共節點 如果沒交點,就都走到空 struct listnode class solution while pl2 null 復位指標到頭節點 pl1 phead1 pl2 phead2 int dif len 0 if len1...

兩個鍊錶的第乙個公共節點

輸入兩個鍊錶,找出它們的第乙個公共的節點。碰到這種題的時候千萬不要用挨個遍歷的方法,時間複雜度高 對於兩個有相同節點的鍊錶的形狀一定是y。而不是x。然後還可能乙個鍊錶長乙個鍊錶短,我們可以求出差值,然後讓長鍊表先走差值的長度,然後在挨個比較就可以了。這樣時間複雜度就小很多了 劍指offer 名企面試...

兩個鍊錶的第乙個公共節點

題目 輸入兩個鍊錶,找出它們的第乙個公共結點。思路 先遍歷兩個鍊錶得到它們的長度,求出長鍊錶比短鍊錶多幾個 第二次遍歷,在長鍊表上先走若干步,接著同時在兩個鍊錶上遍歷,找到的第乙個相同的結點就是它們的第乙個公共結點。public class listnode public listnode find...