天天看點

LeetCode刷題(3)【連結清單】【環形連結清單】&擴充(C語言)

我的小站——半生瓜のblog

環形連結清單

141. 環形連結清單 - 力扣(LeetCode) (leetcode-cn.com)

什麼是連結清單帶環:連結清單的最後一個元素不指向空而指向前面的某個結點。

思路:快慢指針,慢指針走一步,快指針走兩步,二者先後 進入環内進行追逐,最終會在某個點相遇。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool hasCycle(struct ListNode *head) {
    struct ListNode* slow = head;
    struct ListNode* fast = head;
    while(fast && fast->next)
    {
        slow = slow->next;
        fast = fast->next->next;
        if(slow == fast)
            return true;
    }
    return false;
}      

擴充:

請證明:

繼續閱讀