今天是这个系列博文的第二篇。今天我们讲的是也是面试最常考的经典算法题之一—判断一个单链表是否有环。好了,其他话不多说,让我们一起来看看这道题吧!
环形链表
给定一个链表,判断链表中是否有环。
为了表示给定链表中的环,我们使用整数pos
来表示链表尾连接到链表中的位置(索引从0
开始)。 如果pos
是-1
,则在该链表中没有环。
1 | 示例 1: |
1 | 示例 2: |
1 | 示例 3: |
进阶:
你能用O(1)
(即,常量)内存解决此问题吗?
解题思路
快慢指针
快指针一次走2步,慢指针一次走1步,如果两个指针相遇,说明链表有环。
Python代码
1 | # Definition for singly-linked list. |