[Leetcode] 76. Linked List Cycle
2017-03-24 本文已影响10人
时光杂货店
题目
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
解题之法
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode *slow = head, *fast = head;
while (fast && fast->next) {
slow = slow->next;
fast = fast->next->next;
if (slow == fast) return true;
}
return false;
}
};
分析
这道题是快慢指针的经典应用。只需要设两个指针,一个每次走一步的慢指针和一个每次走两步的快指针,如果链表里有环的话,两个指针最终肯定会相遇。