1、判斷鍊錶是否帶環
基本思路:定義兩個指標,乙個快指標,乙個慢指標,快指標一次走兩步,慢指標一次走一步,當兩個指標重合的時候,說明該鍊錶是帶環的,當快指標為空或者快指標的下乙個節點為空,說明是不帶環的。
**實現
/**
* definition of listnode
* class listnode
* }*/class
solution
listnode* fast=head;
listnode* slow=head;
while(fast && fast->next)
}return
false;}};
2、求環的入口點基本思路:
//沒有環
return null;}};
3、求環的長度求環的長度的前提就是先求出快指標的慢指標相遇的節點,然後將該相遇的節點記錄下來,讓乙個新的指標指向該相遇的節點,然後讓新的指標一直往後走,當新指標再次走到相遇節點時就可以求出環的長度。
鍊錶帶環和相交的問題
判斷兩個鍊錶是否相交?不帶環 1 第一種方法 我們只需要遍歷每條鍊錶,把最後乙個節點儲存起來,然後判斷這兩條鍊錶的最後乙個節點是否相等,如果是一樣的節點,那麼這兩個節點就一定相交。2 第二種方法 遍歷兩條鍊錶,求出鍊錶l1的鍊錶長度為len1,鍊錶l2的鍊錶長度為len2,長度差為 len1 len...
鍊錶帶環或不帶環的幾個經典問題
1.給定乙個鍊錶,返回鍊錶開始入環的第乙個節點。如果鍊錶無環,則返回 null。2.求不帶環相交鍊錶起始節點 public class solution return h1 3.求帶環單鏈表的環的長度快慢指標從第一次相遇開始進行累加直到第二次相遇跳出迴圈 public static intlengt...
單鏈表帶環問題
判斷單鏈表是否帶環?若帶環,求環的長度?求環的入口點?1 2 3 4 5 6 7 8 9 不帶環 鍊錶遍歷一次,到最後的節點的下乙個節點會指向null,此時鍊錶不帶環。帶環 在判斷鍊錶是否帶環之前,應該先判斷鍊錶是否為空。空鍊錶肯定不帶環。只要鍊錶帶環,對鍊錶進行遍歷就會形成死迴圈,沒有出口。這是就...