141. Linked List Cycle

Posted いいえ敗者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了141. Linked List Cycle相关的知识,希望对你有一定的参考价值。

Given a linked list, determine if it has a cycle in it.

Follow up:
Can you solve it without using extra space?

一个+1 一个+2 看看能不能相遇。注意代码不要写乱了...以后尽量用p1  p2 这种变量名,不要用p ,q让人看着眼花缭乱

/**
 * 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 * p1 = head;
        ListNode * p2 = head;
        while (p2 != nullptr && p2->next!=nullptr) {
            p1 = p1->next;
            p2 = p2->next->next;
            if (p1 == p2) {
                return true;
            }
        }
        return false;
    }
};

 

以上是关于141. Linked List Cycle的主要内容,如果未能解决你的问题,请参考以下文章

141. Linked List Cycle

141. Linked List Cycle

141. Linked List Cycle

141. Linked List Cycle

算法分析如何理解快慢指针?判断linked list中是否有环找到环的起始节点位置。以Leetcode 141. Linked List Cycle, 142. Linked List Cycl(代码

141. Linked List Cycle