题目描述
给定一个链表,判断链表中是否有环。
为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。
解题思路
1、初步想法:没有想法,估计是没怎么接触链表的题,看到别人的代码用了两个变量,一个变量走一步,一个变量走两步,最后如果这两个变量相遇则该链表为环形。
代码
/**
* 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) {
ListNode faster = head;
ListNode slow = head;
while(faster != null && faster.next != null){
faster = faster.next.next;
slow = slow.next;
if(faster == slow)
return true;
}
return false;
}
}
参考:https://leetcode.com/problems/linked-list-cycle/discuss/44489/O(1)-Space-Solution