Lintcode 102 帶環鍊錶

2021-10-19 11:04:46 字數 690 閱讀 3830

題目描述:給定乙個鍊錶,判斷它是否有環。

這道題如果使用額外空間的話,可以借用set,每走過乙個點就放到set中,當走著走著再次碰到之前的點了就說明有環。下面使用不耗費額外空間的方法:快慢指標實現。

解題思路:

快慢指標的經典題。 快指標每次走兩步,慢指標一次走一步。 在慢指標進入環之後,快慢指標之間的距離每次縮小1,所以最終能相遇。

/**

* definition of singly-linked-list:

* class listnode

* }*/class

solution

slow = head;

fast = head-

>next;

while

(nullptr

!= fast &&

nullptr

!= fast-

>next)

slow = slow-

>next;

fast = fast-

>next-

>next;

}return

false;}

};

lintcode練習 102 帶環鍊錶

給定乙個鍊錶,判斷它是否有環。給出 21 10 4 5,tail connects to node index 1,返回 true 不要使用額外的空間 實現 思路 快慢指標的典型應用,使用快指標 fast 與慢指標 slow,slow每次後移一位,fast 每次後移兩位,當fast 與 slow 指...

102 帶環鍊錶

帶環鍊錶得幾個問題 判斷乙個鍊錶是否有環,如果有環,則返回入環的第乙個節點,否則返回null 如果乙個鍊錶有環,遍歷乙個鍊錶便永遠不會到達null,否則必定會到達null。設定兩個指標,剛開始都指向頭節點,遍歷時,乙個指標每次前進一步,我們稱之為慢指標,另乙個每次前進兩步,稱之為快指標,這樣,如果鍊...

LintCode 帶環鍊錶

給定乙個鍊錶,判斷它是否有環。參考了網上一些資料,算是乙個總結。感謝sunflower yolanda的文章。由這個問題可以引申出來幾個問題,先解決本身。1.判斷是否有環。利用兩個指標slow fast。初始時,兩個指標都在表頭。slow每次走一步,fast每次走兩步。如果不存在環,那麼fast一定...