判断链表是否有环
public class Solution {
public boolean hasCycle(ListNode head) {
if(head == null)return false;
// 定义快慢两个指针
ListNode slow = head;
ListNode fast = head;
// 开启循环,快慢两个指针进行遍历,中途如果相等,则说明有环
while(fast !=null && fast.next != null){
// 慢指针每次走一步
slow = slow.next;
// 快指针每次走两步
fast = fast.next.next;
// 如果相遇,有环
if(fast == slow){
return true;
}
}
return false;
}
}
网友评论