给定一个链表,判断链表中是否有环
解题思路
是用快慢指针,快指针一次往后迭代两个节点,慢节点一次迭代一个节点,两个节点如果能相遇则代表有环
代码
public class Solution {
public boolean hasCycle(ListNode head) {
if (head == null) {
return false;
}
// 快慢指针
ListNode slow = head, quick = head.next;
while (quick != null && quick.next != null && quick != slow) {
slow = slow.next;
quick = quick.next.next;
}
return quick == slow;
}
}