美文网首页
[Leetcode] 76. Linked List Cycle

[Leetcode] 76. Linked List Cycle

作者: 时光杂货店 | 来源:发表于2017-03-24 16:41 被阅读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;
    }
};

分析

这道题是快慢指针的经典应用。只需要设两个指针,一个每次走一步的慢指针和一个每次走两步的快指针,如果链表里有环的话,两个指针最终肯定会相遇。

相关文章

网友评论

      本文标题:[Leetcode] 76. Linked List Cycle

      本文链接:https://www.haomeiwen.com/subject/bgyfottx.html