题目:
给你一个链表的头节点 head ,判断链表中是否有环。
如果链表中有节点,可以连续跟踪 next 如果指针再次到达,链表中就会有一个环。 为了表示给定链表中的环,评估系统内部使用整数 pos 表示链表尾连接到链表的位置(索引从 0 开始)。注意:pos 传输不作为参数。只是为了识别链表的实际情况。
如果链表中有环,则返回 true 。 否则,返回 false 。
示例 1:
输入:head = [3,2,0,-4], pos = 1
输出:true
说明:链表中有一个环,尾部连接到第二个节点。
示例2:
输入:head = [1,2], pos = 0
输出:true
说明:链表中有一个环,尾部连接到第一个节点。
示例 3:
输入:head = [1], pos = -1
输出:false
说明:链表中没有环。
代码实现:
public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode slow = head; ListNode fast = head.next; while (slow != fast) { if (fast == null || fast.next == null) { return false; } slow = slow.next; fast = fast.next.next; } return true; }}