iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

leetcode題目分享系列 第 4

[Day 4] 141. Linked List Cycle

  • 分享至 

  • xImage
  •  

Linked List 檢測 cycle,使用 Floyd’s Cycle detection(龜兔賽跑) 方式
-烏龜每次走一格
-兔子每次走兩格
-烏龜兔子相遇(true);碰到尾(false)

reference:https://hackmd.io/@sysprog/c-linked-list

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

            if(fast == slow){
                return true;
            }
        }
        return false;
    }
};

上一篇
[Day 3] 62. Unique Paths
下一篇
[Day 5] 138. Copy List with Random Pointer
系列文
leetcode題目分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言