环形链表(力扣141题)
题目:给你一个链表的头节点 head
,判断链表中是否有环。
/**
* 思路:仍然使用快慢指针,快指针一次走两步,慢指针一次走一步,
* 如果快慢指针相遇,说明快指针比慢指针多走一圈,存在环。
*
*/
public class Solution {
public boolean hasCycle(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while (fast != null && fast.next != null) {
slow = slow.next;
fast = fast.next.next;
// 相遇,存在环
if (slow == fast) {
return true;
}
}
return false;
}
}