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


想法二

哈希表

相关文章
|
1天前
|
索引
每日一题:力扣328. 奇偶链表
每日一题:力扣328. 奇偶链表
11 4
|
3天前
leetcode代码记录(移除链表元素
leetcode代码记录(移除链表元素
8 0
【每日一题】LeetCode——反转链表
【每日一题】LeetCode——反转链表
【每日一题】LeetCode——链表的中间结点
【每日一题】LeetCode——链表的中间结点
|
16天前
|
C++
[leetcode 链表] 反转链表 vs 链表相交
[leetcode 链表] 反转链表 vs 链表相交
|
25天前
【力扣】148. 排序链表
【力扣】148. 排序链表
|
25天前
|
索引
【力扣】142. 环形链表 II
【力扣】142. 环形链表 II
|
25天前
【力扣】19. 删除链表的倒数第 N 个结点
【力扣】19. 删除链表的倒数第 N 个结点
|
2天前
|
算法 C++
【刷题】Leetcode 1609.奇偶树
这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
6 0
|
2天前
|
算法 索引
【刷题】滑动窗口精通 — Leetcode 30. 串联所有单词的子串 | Leetcode 76. 最小覆盖子串
经过这两道题目的书写,相信大家一定深刻认识到了滑动窗口的使用方法!!! 下面请大家继续刷题吧!!!
7 0