程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> [LeedCode OJ]#141 Linked List Cycle

[LeedCode OJ]#141 Linked List Cycle

編輯:關於C++

 

 

題意:

給定一個鏈表,判斷這個鏈表是否有環

 

思路:

設定快慢指針,快指針一次走兩步,慢指針一次走一步,如果快指針到達NULL就代表無環,一旦快指針與慢指針相等那麼就代表有環

 

 

/**
 * 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)
    {
        if(head==NULL)
            return false;
        ListNode *fast,*slow;
        fast = slow = head->next;
        while(fast!=NULL&&fast->next!=NULL)
        {
            fast = fast->next->next;
            slow = slow->next;
            if(fast==slow)
                return true;
        }
        return false;
    }
};


 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved