/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
bool hasCycle(ListNode *head) {
if (head == nullptr || head->next == nullptr) {
return false;
}
ListNode *node1 = head;
ListNode *node2 = head->next;
while(node1 != node2){
if(node2 ==nullptr || node2->next == nullptr){
return false;
}
node1 = node1->next;
node2 = node2->next->next;
}
return true;
}
};
// class Solution {
// public:
// bool hasCycle(ListNode* head) {
// if (head == nullptr || head->next == nullptr) {
// return false;
// }
// ListNode* slow = head;
// ListNode* fast = head->next;
// while (slow != fast) {
// if (fast == nullptr || fast->next == nullptr) {
// return false;
// }
// slow = slow->next;
// fast = fast->next->next;
// }
// return true;
// }
// };
Leetcode141. 环形链表
最新推荐文章于 2025-12-19 16:34:09 发布
该博客介绍了一种算法,用于检测给定的单链表中是否存在环。通过设置两个指针,一个快指针每次前进一位,一个慢指针每次前进两位。如果链表中存在环,快慢指针最终会在环内相遇;反之,如果链表无环,快指针会先到达尾部。这种方法简洁高效,适用于链表结构的问题。
253

被折叠的 条评论
为什么被折叠?



