题目链接:https://leetcode-cn.com/problems/linked-list-cycle/description/
给定一个链表,判断链表中是否有环。
进阶:
你能否不使用额外空间解决此题?
思路:用一个快慢指针即可,当有环的时候 快慢指针必定相遇
/**
* Definition for singly-linked list.
* class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public boolean hasCycle(ListNode head) {
boolean isHasCycle=false;
if(head==null){
return false;
}
ListNode p1=head;
ListNode p2=head;
while(p1!=null&&p2!=null){
p1=p1.next;
if(p2.next!=null){
p2=p2.next.next;
}else{
break;
}
if(p1==p2){
isHasCycle=true;
break;
}
}
return isHasCycle;
}
}