给定一个 单链表 的头节点 head,请你判断链表中 是否存在环。
如果某个节点能通过连续跟踪 next 指针 再次到达,就说明链表里有环;有环返回 true,无环返回 false。
输入
给定一个链表的头节点 head,判断链表中是否存在环。
如果链表中存在某个节点,可以通过连续跟踪 next 指针再次到达该节点,则说明链表中存在环。
为了表示给定链表中的环,使用整数 pos 表示链表尾节点连接到链表中的位置,索引从0开始。
如果 pos=−1,则表示链表中没有环。
注意:pos 不作为输入链表检测函数的参数进行传递,仅用于表示链表的实际结构。
如果链表中存在环,则输出 true;否则输出 false。
第一行输入一个整数 n,表示链表中节点的数量。
第二行输入 n 个整数,表示链表中每个节点的值 Node.val。
第三行输入一个整数 pos,表示链表尾节点连接到链表中的位置。
其中:
输出一个布尔值。
如果链表中存在环,输出 true。
否则,输出 false。
4
3 2 0 -4
1
true
链表中存在一个环,其尾部连接到第二个节点,即下标为 1 的节点。

2
1 2
0
true
链表中存在一个环,其尾部连接到第一个节点,即下标为 0 的节点。

1
1
-1
false

链表中不存在环。
你能使用 O(1) 的额外内存解决此问题吗?