LeetCode 141 环形链表
生活中的环形
想象两个人在环形跑道上跑步,一个跑得快,一个跑得慢。如果他们一直跑下去,快的跑者一定会从后面追上慢的跑者。这就是我们今天要讨论的环形链表问题的现实映射。在跑道上,两个速度不同的跑者相遇就说明跑道是环形的;同样在链表中,如果两个速度不同的指针相遇,就说明链表中存在环。
问题描述
LeetCode第141题"环形链表"要求:给你一个链表的头节点 head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。
例如:
输入:3 → 2 → 0 → -4
↑___________|
输出:true
解释:链表中存在一个环,尾节点连接到第二个节点
输入:1 → 2
↑___|
输出:true
解释:链表中存在一个环,尾节点连接到第一个节点
输入:1 → 2 → 3 → 4
输出:false
解释:链表中不存在环
简单解法:哈希表记录
最直观的想法是用一个哈希表记录每个走过的节点。就像