题目

中文

https://leetcode-cn.com/problems/linked-list-cycle/
image.png
image.pngimage.png

英文

题解

第一次

个人

一文解决链表所以问题
9种方式解决该题
想不太到。。。直接往下传递太过于复杂。
暴力:遍历 用哈希表存进去看之前是否走过 来判断。

题解

快慢指针(双指针):快指针走2步,慢指针走1步,如果有环则必定会相遇。

  1. bool hasCycle(struct ListNode *head)
  2. {
  3. if (head == NULL)
  4. return false;
  5. struct ListNode *fast = head;
  6. struct ListNode *slow = head;
  7. while (fast != NULL && fast->next != NULL)
  8. {
  9. fast = fast->next->next;
  10. slow = slow->next;
  11. if (fast == slow)
  12. return true;
  13. }
  14. return false;
  15. }