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

2021-10-24 09:20:20 字數 902 閱讀 5739

輸入兩個鍊錶,找出它們的第乙個公共結點。(注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的)

我們假定這兩個鍊錶一定存在這樣乙個公共結點。那麼存在形式就是如下三種。

第一種:

第二種:

第三種:

我們從第二種鍊錶入手。試想,如果想要找到最快的乙個公共結點我們應該怎麼做。那肯定是使用雙鏈表去做啊。將引數傳遞給乙個新結點(為了後面講解),依次你移動一下,我移動一下,進行比較不就出來了?

我們再看第一種鍊錶和第三種鍊錶,這都有乙個共同點。如果我們採用第二種的解決方案是肯定行不通的,並且我們會發現這兩個鍊錶長度不一樣,遲早有乙個會新接近終點,所以我們要對他進行優化。

假定 list1 長度:a+n   list2 長度:b+n, 且 a同理a>=b

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

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 struct listnode class solution elseif ia else if tb elseif ib else return ta 思路 因...

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

時間限制 1秒 空間限制 32768k 本題知識點 鍊錶 題目描述 include using namespace std struct listnode 方法一 先對齊結尾後,從前往後比較結點 class solution while p2 對齊尾部,從短的頭部開始比較 p1 phead1 p2 ...

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

題目 輸入兩個鍊錶,找出他們的第乙個公共結點 思路 公共結點是指結點值相同,結點指向的下乙個結點也相同。如果下乙個結點也相同,那麼下乙個結點的值記憶下乙個結點指向的結點也相同。即,從此公共結點開始,兩個鍊錶相遇,且之後的結點都是相同的,也就是重合了。因為結點位址相同,結點值相同,指向的下乙個節點的位...