LeetCode 面试题 02.08. Linked List Cycle LCCI
题目描述
给定一个有环链表,实现一个算法返回环路的开头节点。
有环链表的定义:在链表中某个节点的next元素指向在它前面出现过的节点,则表明该链表存在环路。
示例 1:
输入:
head = [3,2,0,-4]
,pos = 1
输出:tail connects to node index 1
解释:链表中有一个环,其尾部连接到第二个节点。
示例 2:
输入:
head = [1,2]
,pos = 0
输出:tail connects to node index 0
解释:链表中有一个环,其尾部连接到第一个节点。
示例 3:
输入:
head = [1]
,pos = -1
输出:no cycle
解释:链表中没有环。
解题思路
经典的快慢指针问题,这里给出C的解法。
- 设置快慢指针
- 找到第一次相遇【快慢指针相遇】
- 再出发慢指针【从头结点出发的慢指针与快指针】
- 相遇即所求
代码
1 | /** |
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏