如果兩個鍊錶無環,判斷相交的方法在網上很多,此處不做討論。這裡只考慮兩個鍊錶都帶環的情況,如何判斷其是否相交。
另外還有一種情況,就是乙個鍊錶不帶環,另乙個帶環。在這種情況,兩個鍊錶必然不想交,如果相交,則兩個鍊錶必然都帶環。
ok,現在開始討論兩個帶環鍊錶相交的問題。
1. 既然帶環,先分別求出進入環的第乙個節點。這個問題可以在o(n)時間內解決。
2. 設兩個鍊錶進入環的第乙個節點分別為p1, p2, 如果p1 == p2,說明2個鍊錶在進入環之前或在環的第乙個節點已經相交。這時問題可以轉化為求2個不帶環鍊錶的相交問題。因為在p1或p2之前的部分屬於環外部分。將p1或p2看做2個鍊錶的最後乙個節點,可以求出這2個鍊錶的相交點。如果p1 != p2, 則說明這2個鍊錶共享了同乙個環。兩個鍊錶完全共環。
判斷兩個鍊錶是否相交並找出交點
問題描述 乙個比較經典的問題,判斷兩個鍊錶是否相交,如果相交找出他們的交點。思路 1 碰到這個問題,第一印象是採用hash來判斷,將兩個鍊錶的節點進行hash,然後判斷出節點,這種想法當然是可以的。2 當然採用暴力的方法也是可以的,遍歷兩個鍊錶,在遍歷的過程中進行比較,看節點是否相同。3 第三種思路...
判斷兩個鍊錶是否相交並找出交點
問題描述 乙個比較經典的問題,判斷兩個鍊錶是否相交,如果相交找出他們的交點。思路 1 碰到這個問題,第一印象是採用hash來判斷,將兩個鍊錶的節點進行hash,然後判斷出節點,這種想法當然是可以的。2 當然採用暴力的方法也是可以的,遍歷兩個鍊錶,在遍歷的過程中進行比較,看節點是否相同。3 第三種思路...
判斷兩個鍊錶是否相交並找出交點 筆記
本文內容並非全部為原創,新增個人想法僅做筆記之用。判斷兩個鍊錶是否相交的方法 相交鍊錶的特徵 如果兩個鍊錶相交,那麼交點以後的節點都相同,否則不相交。這個地球人都懂得 兩個鍊錶的節點進行hash,然後判斷節點hash值和節點的值是否相等來判斷。乙個鍊錶的尾部連線下乙個鍊錶的頭部,通過判斷新鍊錶是否有...