141.环形链表(LeetCode)

简介: 141.环形链表(LeetCode)

e7619076c6921c50488cc44302c02064_100a8634165a4bb8a06b881553452561.png


想法一

快慢指针,设置slow和fast指针,slow一次走一步,fast一次走两步,如果链表有环,它们最终会相遇,相遇时返回true;如果链表无环,它们最终走到空,跳出循环,返回false


bool hasCycle(struct ListNode *head)
{
    struct ListNode *slow = head, *fast = head;
    while (slow && fast && fast->next)
    {
        slow = slow->next;
        fast = fast->next->next;
        if (slow == fast)
        {
            return true;
        }
    }
    return false;
}

追问:1.它们一定会相遇吗?


           2.如果slow一次走一步,fast一次走n步,还会相遇吗?(n>2)


问题一

d0b39cbbde3b36551fb3635d9a079bbb_82b234dde8e140b286a5a36542fc081f.png

问题二

 2670de561c3eda7043a679820915d76a_7e2d8bed8fc747a583b9866e501d91db.png

3940f71b8cdc6a1ead772c3ec2f551a1_fdae1ba11a6f4ab0bc4f04610cc4a325.png

092762f837cb3af6cdf094d2975cf2c6_e930511c0f154692be11efe58e0a0bb4.png


想法二

哈希表

相关文章
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
23天前
|
索引
【力扣】142. 环形链表 II
【力扣】142. 环形链表 II
|
23天前
|
C语言 C++ 索引
【力扣】141. 环形链表、160. 相交链表、206.反转链表、234. 回文链表
【力扣】141. 环形链表、160. 相交链表、206.反转链表、234. 回文链表
|
23天前
【力扣】21. 合并两个有序链表
【力扣】21. 合并两个有序链表
|
1月前
|
算法 C语言 索引
环形链表(快慢指针)
环形链表(快慢指针)
|
2月前
|
存储 JavaScript
leetcode82. 删除排序链表中的重复元素 II
leetcode82. 删除排序链表中的重复元素 II
22 0
|
2月前
leetcode83. 删除排序链表中的重复元素
leetcode83. 删除排序链表中的重复元素
10 0
|
2月前
leetcode2807.在链表中插入最大公约数
leetcode2807.在链表中插入最大公约数
16 0
|
2月前
leetcode2487.从链表中移除节点
leetcode2487.从链表中移除节点
20 1
|
2月前
|
存储 算法
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)