015 · Linked List Cycle
algorithm
Problem
给定一个单链表的头节点 head。
请判断这个链表中是否存在环。
链表中每个节点包含两个部分:
val:当前节点的值next:指向下一个节点的指针
如果某个节点的 next 指针指向了链表中之前出现过的某个节点,那么这个链表就有环。
例如:
3 -> 2 -> 0 -> -4
^ |
|_________|
在这个链表中,-4 的 next 又指回了节点 2,所以链表中存在环。
需要返回:
- 如果链表中有环,返回
true - 如果链表中没有环,返回
false
题目中的 pos 只用来表示尾节点连接到链表中的哪个位置。你不需要在代码中使用 pos,它也不会作为参数传入。
Examples
示例 1
Input: head = [3,2,0,-4], pos = 1
Output: true
解释:尾节点 -4 指向下标为 1 的节点,也就是节点 2,所以链表中有环。
示例 2
Input: head = [1,2], pos = 0
Output: true
解释:尾节点 2 指向下标为 0 的节点,也就是节点 1,所以链表中有环。
示例 3
Input: head = [1], pos = -1
Output: false
解释:pos = -1 表示尾节点没有连接到链表中的任何节点,所以没有环。
Constraints
- 链表中节点的数量范围是 \([0, 10^4]\)
- \(-10^5 \leq\)
Node.val\(\leq 10^5\) pos为-1,或者是链表中的一个有效下标
Link
→ Solution