Given a linked list, determine if it has a cycle in it.
Follow up: Can you solve it without using extra space?
题目让我们判断一个链表中是否有环。
思路:设置快慢指针fast, slow,慢指针每次走一步,快指针每次走两步。如果链表中有环的话,快慢指针早晚会相遇;如果链表中没有环,那么fast或者fast->next会有一个先达到nullptr。
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode *fast, *slow;
fast=head;
slow=head;
while(fast!=nullptr && fast->next!=nullptr)
{
slow=slow->next;
fast=fast->next->next;
if(slow==fast)
return true;
}
return false;
}
};
照顾好自己的身体,控制好自己的情绪,加油!
以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。 同时请,关注我们的公众号,获取最新关于专知以及人工智能的资讯、技术、算法等内容。扫一扫下方关注我们的微信公众号。