1. 程式人生 > >連結串列環問題(單鏈表)

連結串列環問題(單鏈表)

判斷連結串列是否有環

設定兩個指標,都從頭結點開始,一個每次前進一步,另一個每次前進兩步。如果存在環兩個指標會相遇,如果不存在環,走兩步的會先遇到null並退出。

判斷環的長度

設定兩個指標,都從頭結點開始,一個每次前進一步,另一個每次前進兩步。因為有環兩者必然會相遇,再從該點開始走,再次相遇時走的慢的指標走過的長度即為環的長度。

找到環的入口節點

設定兩個指標,都從頭結點開始,一個每次前進一步,另一個每次前進兩步。因為有環兩者必然會相遇,相遇時讓其中一個指標指向頭結點,然後都變成每次前進一步,兩個指標再次相遇的地方就是環的入口節點。