LeetCode — Linked List Cycle 解题报告
2013-12-24 20:51
519 查看
转载请注明:http://blog.csdn.net/ict2014/article/details/17536123
原题如下:
题目解析:
这道题目是“判断一个单链表是否有环?”,最经典的做法就是设定两个指针,一个快指针,一个慢指针,快指针每次走两步,慢指针每次走一步,如果存在环的时候,快慢指针会重合。如果没有环,则会走到链表的末尾。
题目代码:
原题如下:
题目解析:
这道题目是“判断一个单链表是否有环?”,最经典的做法就是设定两个指针,一个快指针,一个慢指针,快指针每次走两步,慢指针每次走一步,如果存在环的时候,快慢指针会重合。如果没有环,则会走到链表的末尾。
题目代码:
/** * 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 || head->next == NULL){ return false; } ListNode* slow = head; ListNode* fast = head; while(fast != NULL && fast->next != NULL){ fast = fast->next->next; slow = slow->next; if(slow == fast){ return true; } } return !(fast == NULL || fast->next == NULL); } };
相关文章推荐
- LeetCode: Linked List Cycle 解题报告
- LeetCode 解题报告 LinkedListCycleII
- LeetCode解题报告—— Linked List Cycle II & Reverse Words in a String & Fraction to Recurring Decimal
- 【LeetCode】Linked List Cycle 解题报告(Java & Python)
- LeetCode — Linked List Cycle II 解题报告
- LeetCode解题报告:Linked List Cycle && Linked List Cycle II
- 【LeetCode】Delete Node in a Linked List 解题报告
- [Leetcode] 725. Split Linked List in Parts 解题报告
- LeetCode92 Reverse Linked List II 解题报告
- [LeetCode OJ] Linked List Cycle 解题报告
- [LeetCode]Reverse Linked List II, 解题报告
- LeetCode-Reverse Linked List-解题报告
- [Leetcode] 141. Linked List Cycle 解题报告
- [Leetcode] 92. Reverse Linked List II 解题报告
- LeetCode 237. Delete Node in a Linked List 解题报告
- [leetcode] 92. Reverse Linked List II 解题报告
- 【LeetCode】Reverse Linked List II 解题报告
- 【LeetCode】Reverse Linked List 解题报告(Python & java)
- Leetcode 92. Reverse Linked List II 翻转链表2 解题报告
- leetcode解题之141# Linked List Cycle Java版 (判断链表是否有环)