Kotlin Leetcode - 141. Linked List Cycle
class Solution {
fun hasCycle(head: ListNode?): Boolean {
}
}
解題思路
本題練習的是針對 linked list 的操作
類似 [[876. Middle of the Linked List]]
我們可以使用兩個變數當作指標
其中一個指標在每次移動時,往後移動兩個元素
另一個指標在每次移動時,往後移動一個元素
這樣一來
當這兩個指標同時指向一個元素時
我們就可以確定這個 linked list 裡面包含迴圈
Kotlin 參考解答
class Solution {
fun hasCycle(head: ListNode?): Boolean {
var fast = head?.next
var slow = head
while (fast != null && fast.next != null) {
slow = slow?.next
fast = fast?.next?.next
if (slow == fast) {
return true
}
}
return false
}
}
- 回到 leetcode 列表
- 回到 Grind 75 列表