返回相交鍊錶的交點:1.先求出兩個鍊錶的各自長度
2.讓長的先走他們的(長度差)步
3.然後兩者同時走,第一次相遇就是交點(返回該結點)
判斷鍊錶是否帶環:1.快慢指標(快的走兩步,慢的走一步,不能乙個一步,乙個n步(n>2),可能會錯過)
2.如果兩個指標相遇,則鍊錶帶環;如果快的遇到null,則不帶環(直線形)
求入環點:
1).轉化為相交問題(求取相遇結點)
2).乙個從起點,乙個從交點,都每次走一步,第一次相遇點為入環點
相交+帶環(六種情況)
複雜鍊錶的複製
1)簡單複製無法解決(因為是淺拷貝)
2)先複製結點,再考慮random問題
3)如果能從老的結點中找到新的結點問題好解決
結構:1.老-新-老-新...
2.處理random
3.拆開
鍊錶帶環和相交的問題
判斷兩個鍊錶是否相交?不帶環 1 第一種方法 我們只需要遍歷每條鍊錶,把最後乙個節點儲存起來,然後判斷這兩條鍊錶的最後乙個節點是否相等,如果是一樣的節點,那麼這兩個節點就一定相交。2 第二種方法 遍歷兩條鍊錶,求出鍊錶l1的鍊錶長度為len1,鍊錶l2的鍊錶長度為len2,長度差為 len1 len...
鍊錶帶環問題
1 判斷鍊錶是否帶環 基本思路 定義兩個指標,乙個快指標,乙個慢指標,快指標一次走兩步,慢指標一次走一步,當兩個指標重合的時候,說明該鍊錶是帶環的,當快指標為空或者快指標的下乙個節點為空,說明是不帶環的。實現 definition of listnode class listnode class s...
相交鍊錶 鍊錶
題目 編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交。示例 1 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with v...