题目:
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
让head不断走一步,如果cur不为null,走两步,这样如果存在cycle,cur会追上head。
/** * 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) { ListNode* cur = head; while (cur && cur->next != head){ cur = cur->next; if (cur) cur = cur->next; else break; head = head->next; } if (!cur) return false; return true; } };
时间: 2024-10-16 22:16:29