使用快慢指针法判断链表是否有环,分别定义fast和slow指针从头结点出发,进循环,fast指针每次移动两个结点,slow指针每次移动一个结点,如果fast和slow在途中相遇(fast == slow),说明这个链表有环。循环结束说明链表没有环。

这里说明一下为什么fast和slow会在环中相遇而不是永远错开:
因为fast指针一定会先进入环中(如果有环存在的话),如果fast和slow相遇的话,一定是在环中相遇,这点是毋庸置疑的。
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务