题目:
吐槽:题目只是判断是否是有环的链表,没有让找到成环的点,所以是个比较简单的题目,常使用双指针来进行判断。
代码:
public boolean hasCycle(ListNode head) {
//1.将快慢指针都指向头节点
ListNode low = head;
ListNode fast = head;
//2.慢指针走一步,快指针走两步,总有会相交的时候。注意快指针容易报null指针异常,所以要判断fast和fast.next是否为null
while(fast!=null&&fast.next!=null){
low = low.next;
fast = fast.next.next;
//快慢指针相等则有环
if(fast == low){
return true;
}
}
//快指针为null则无环
return false;
}