# (Easy) 141. Linked List Cycle ## Run Code  ## 題意 給一個ListNode確認他是否有循環。 ## 解題思路 利用一個fastPtr讓他跑得比較快,看能不能跟shortPtr只在同一個node上。 ## 困難之處 啊就沒想到啊,然後想用暴力法結果被他討人厭的測資擋下QAQ。 ## Code ```cpp= /** * 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 *fastPtr = head->next; ListNode *shortPtr = head; for(;fastPtr!=NULL && fastPtr->next!=NULL;shortPtr = shortPtr->next, fastPtr = fastPtr->next->next){ if(shortPtr==fastPtr) return true; } return false; } }; ``` ## 別人的神速解法  - 如果是Cycle的話,早晚會回到先前曾經跑過的list,所以將跑過的list的val改成1000000(題目n範圍之外的值),當front只到被改過的值就代表這個listnode是Cycle。 ###### tags: `leetcode`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up