题解 | #判断链表中是否有环#
判断链表中是否有环
https://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9
/**
* 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) {
// 定义快慢两个指针,开始时都指向head节点
ListNode *fast = head, *slow = head;
// while的条件只需判断快指针及快指针的next节点不为空,防止溢出
while(fast && fast->next){
// 快指针走两步,慢指针走一步
fast = fast->next->next;
slow = slow->next;
// 快慢指针相遇则有环
if(fast == slow){
return true;
}
}
// 有环在while中已经返回,最后直接返回false(无环)
return false;
}
};
机械转码刷题进行中~ 文章被收录于专栏
这是一个机械专业学生艰难的转码之路,只会用最简单的想法跟思路,请各路大神不吝赐教,在评论区分享你们的想法!!!

