码迷,mamicode.com
首页 > 其他好文 > 详细

141. Linked List Cycle

时间:2016-08-09 00:18:46      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

1. 问题描述

Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
Tags: Linked List Two Pointers
Similar Problems: (M) Linked List Cycle II

2. 解题思路

  • 画图分析,发现规律,两个指针(*pF 步长为1,*pS步长为2)

3. 代码

class Solution {
public:
    bool hasCycle(ListNode *head) 
    {
        if (!head)
        {
            return false;
        }
        ListNode *pF = head;
        ListNode *pS = head;
        while (pS->next)
        {
            pS = pS->next;
            if (pS == pF)
            {
                return true;
            }
            pS = pS->next;
            if (!pS)
            {
                return false;
            }
            pF = pF->next;
        }
        return false;
    }
};

4. 反思

141. Linked List Cycle

标签:

原文地址:http://www.cnblogs.com/whl2012/p/5751415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!