37 兩個鍊錶的第乙個公共結點

2021-07-03 17:51:45 字數 912 閱讀 8748

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

//先在長鍊表上走幾步,再同時在兩個鍊錶上遍歷

for (int i = 0; i < nlengthdif; ++i)

plistheadlong = plistheadlong->m_pnext;

while ((plistheadlong != null) && (plistheadshort != null) && (plistheadlong!=plistheadshort)

//得到第乙個公共結點

劍指37 兩個鍊錶的第乙個公共結點

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。解題思路 思路1 如果兩個鍊錶存在公共結點,那麼它們從公共結點開始一直到鍊錶的結尾都是一樣的,因此我們只需要從鍊錶的結尾開始,往前搜尋,找到最後乙個相同的結點即可。但是題目給出的單向鍊錶,我們只能從前向後搜尋,這時,我們就可以借助棧來完成。先把兩個鍊...

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

思路 獲取兩個鍊錶的長度,求的長度差n,讓長鍊表先遍歷n次,然後長鍊表和短鍊錶同時遍歷,當長鍊錶和短鍊錶相等時,即為第一公共結點。o m1 m2 public class findfirstcomnode int len1 getnodelength root1 int len2 getnodele...

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

題目 輸入兩個鍊錶,找出他們的第乙個公共結點。方法1 分別把兩個鍊錶的節點放入兩個棧裡,這樣兩個鍊錶的尾結點就位於兩個棧的棧頂,接下來比較兩個棧頂的結點是否相同。如果相同,則把棧頂彈出接著比較下乙個棧頂,直到找到最後乙個相同的結點。時間和空間複雜度都是o m n 方法2 先遍歷兩個鍊錶得到它們的長度...