兩個鍊錶的第乙個公共節點(鍊錶相交)

2021-09-12 07:44:57 字數 441 閱讀 1103

#題目描述

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

鍊錶只要存在公共節點,那麼公共節點後面所有的節點都是公共的。因此,對於這種一般兩種思路

思路一:將兩個鍊錶分別壓入兩個棧中,然後從棧頂不斷比較。知道遇到第乙個不相等的節點,然後公共節點就是該節點的下乙個節點

思路二:如果能將鍊錶尾部對齊,那麼就可以兩兩比較了,先分別獲取兩個鍊錶的長度,然後分別獲取兩個鍊錶的

/*

struct listnode

};*/

#includeclass solution

//然後,比較兩個鍊錶是否相同,不是則都繼續前進

while((plong!=null)&&(pshort!=null)&&(plong!=pshort))

return plong;

}};

兩個鍊錶第乙個公共節點

先讓長的鍊錶的指標先走長的之差的步數,兩個再一起走,如果相遇就是第乙個公共節點 如果沒交點,就都走到空 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...