【leetcode】环形链表✚环形链表II

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️


目录

1.环形链表

点击查看题目

解题

思路:

c 复制代码
bool hasCycle(struct ListNode *head) {
    struct ListNode *slow=head;
    struct ListNode *fast=head;
    while(fast&&fast->next)
    {
        slow=slow->next;
        fast=fast->next->next;

        if(fast==slow)
            return true;
    }
    return false;
}

拓展:

1

慢指针一次走2步,快指针一次走3步,可以解决上面的题目吗?

可以的,因为它们也只是相差了1步,证明同上

2

慢指针一次走1步,快指针一次走3步,走4步,...n步行吗?下面用慢指针一次走1步,快指针一次走3步来证明


2.环形链表II

点击查看题目

思路:

c 复制代码
struct ListNode *detectCycle(struct ListNode *head) {
    struct ListNode *slow=head;
    struct ListNode *fast=head;
    while(fast&&fast->next)
    {
        slow=slow->next;
        fast=fast->next->next;
        //1.找到相遇的节点
        if(slow==fast)
        {
            //让meet从相遇节点开始走
            struct ListNode *meet=slow;
            while(head!=meet)
            {
                head=head->next;
                meet=meet->next;
            }   
            return meet;
        }
    }
    return NULL;
}

好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

相关推荐
ue星空1 小时前
Windows内核函数使用
windows
业余幻想家3 小时前
Windows10/Windows11家庭版系统关闭自动更新
运维·windows
阿猿收手吧!4 小时前
windows本机vscode通过ssh免密登录远程linux服务器 && git push/pull 免密
服务器·windows·vscode
zxm85134 小时前
如何在Windows系统中加入程序自启动
windows
小安同学iter4 小时前
SQL50+Hot100系列(11.7)
java·算法·leetcode·hot100·sql50
~~李木子~~4 小时前
Windows软件自动扫描与分类工具 - 技术文档
windows·分类·数据挖掘
-指短琴长-6 小时前
Qt的下载和安装【Windows】
开发语言·windows·qt
不懂音乐的欣赏者6 小时前
Windows 下 ROS/ROS2 开发环境最优解:WSL 比直接安装、虚拟机、双系统更优雅!
linux·windows·ubuntu·ros·wsl·ros2·双系统
谈笑也风生7 小时前
只出现一次的数字 II(一)
数据结构·算法·leetcode
电脑小白技术7 小时前
国产电脑可以装windows吗_国产电脑安装windows要求及方法
windows·电脑·国产电脑装windows·国产电脑系统改windows