LeetCode: Linked List Cycle
2017-05-12 12:04
447 查看
/** *Given a linked list, determine if it has a cycle in it. *Follow up: *Can you solve it without using extra space? */ //Unit Test // // |1|-|-->|2|-|-->|3||| // /|\ | // | \|/ // |||6|<--|-|5|<--|-|4| #include<iostream> using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: Solution(); ~Solution(); bool hasCycle(ListNode* head){ if(head==NULL){ //空链表没有环 return false; } ListNode* fast = head; //快指针 ListNode* slow = head; //慢指针 while(fast->next!=NULL){ //一个节点没有环 fast=fast->next->next; //快指针的步长是2 if(fast == NULL){ //两个节点没有环 return false; } slow = slow->next; if(fast == slow){ return true; } } return false; } }; int main(){ ListNode node1(1); ListNode node2(2); ListNode node3(3); ListNode node4(4); ListNode node5(5); ListNode node6(6); node1.next = &node2; node2.next = &node3; node3.next = &node4; node4.next = &node5; node5.next = &node6; node6.next = &node1; Solution s; cout<<boolalpha<<s.hasCycle(&node1)<<endl; //使用boolalpha输出为bool类型 return 0; }
相关文章推荐
- 【LeetCode练习题】Linked List Cycle II
- <LeetCode OJ> 141 / 142 Linked List Cycle(I / II)
- Leetcode之Linked List Cycle 问题
- [leetcode] Linked List Cycle
- [LeetCode141]Linked List Cycle
- LeetCode 141 -Linked List Cycle ( JAVA )
- Java for LeetCode 142 Linked List Cycle II
- [LeetCode] Linked List Cycle 单链表中的环
- LeetCode – Refresh – Linked List Cycle
- [C语言][LeetCode][142]Linked List Cycle II
- leetcode 刷题之路 59 Linked List Cycle II
- LeetCode: Linked List Cycle
- leetCode-linkedListCycle判断链表是否有环
- [LeetCode] Linked List Cycle
- LeetCode OJ Linked List Cycle II
- LeetCode141 Linked List Cycle. LeetCode142 Linked List Cycle II
- 【leetcode】【141】Linked List Cycle
- leetcode[141&142]:Linked List Cycle I & II
- Leetcode Linked List Cycle
- leetcode 141 —— Linked List Cycle