判断链表是否有环 Linked List Cycle
2013-11-06 18:15
316 查看
题目源自于leetcode。
题目:Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
思路:快指针、 慢指针。有环的话,一定不会遇到NULL;没环的话,fast一定先到NULL。该算法的时间复杂度为O(N),空间复杂度为O(1)。
代码:
题目:Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
思路:快指针、 慢指针。有环的话,一定不会遇到NULL;没环的话,fast一定先到NULL。该算法的时间复杂度为O(N),空间复杂度为O(1)。
代码:
/** * 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) { ListNode *slow, *fast; slow = fast = head; while(fast != NULL && fast->next != NULL) { slow = slow->next; fast = fast->next->next; if(slow == fast) return true; } return false; } };
相关文章推荐
- LeetCode OJ 之 Linked List Cycle (判断链表是否有环)
- [leetcode 141] Linked List Cycle----判断链表是否为循环链表
- Linked List Cycle-- 判断一个单向链表中是否有环存在
- 判断链表是否有环及环入口点的求法(Linked List Cycle II )
- leetcode解题之141# Linked List Cycle Java版 (判断链表是否有环)
- LeetCode | Linked List Cycle(判断链表是否有环)
- [Leetcode] Linked list cycle 判断链表是否有环
- 链表-Linked List Cycle II(判断一个链表是否有环)
- Linked List Cycle 判断一个链表是否存在回路(循环)
- leetcode--Linked List Cycle--判断链表是否有环
- linked-list-cycle——链表、判断是否循环链表、快慢指针
- Linked List Cycle 判断链表是否有环
- 【leetcode】Linked List Cycle II,判断链表是否有环
- Linked List Cycle --判断链表是否有环
- Linked List Cycle(判断链表是否有环)-python
- 019-141-Linked List Cycle 判断链表是否有环
- [Leetcode] Linked list cycle ii 判断链表是否有环
- 020-142-Linked List Cycle II 判断链表是否有环并返回环的起点
- 141 Linked List Cycle(判断链表是否有环Medium)
- Linked List Cycle:判断链表是否有环