LeetCode Linked List Cycle (Floyd判圈算法)
2014-08-29 16:47
330 查看
题目描述:https://oj.leetcode.com/problems/linked-list-cycle/
给一个链表,Floyd判圈可在O(n)的时间复杂度,O(1)的空间复杂度内判定其中有没有环。
package LinkedListCycle;
public class Solution {
class ListNode{
int val;
ListNode next;
ListNode(int x){
val = x;
next = null;
}
}
public boolean hasCycle(ListNode head) {
if(head==null) return false;
ListNode slowPtr = head;
ListNode fastPtr = head;
boolean flag = true;
do{
if(fastPtr.next == null ||fastPtr.next.next == null){
flag = false;
break;
}
slowPtr = slowPtr.next;
fastPtr = fastPtr.next.next;
}while(slowPtr != fastPtr);
return flag;
}
}
给一个链表,Floyd判圈可在O(n)的时间复杂度,O(1)的空间复杂度内判定其中有没有环。
package LinkedListCycle;
public class Solution {
class ListNode{
int val;
ListNode next;
ListNode(int x){
val = x;
next = null;
}
}
public boolean hasCycle(ListNode head) {
if(head==null) return false;
ListNode slowPtr = head;
ListNode fastPtr = head;
boolean flag = true;
do{
if(fastPtr.next == null ||fastPtr.next.next == null){
flag = false;
break;
}
slowPtr = slowPtr.next;
fastPtr = fastPtr.next.next;
}while(slowPtr != fastPtr);
return flag;
}
}
相关文章推荐
- 【leetcode】141/142Linked List Cycle(Floyd判圈算法)
- LeetCode Linked List Cycle II
- leetcode 日经贴,Cpp code -Linked List Cycle
- [Leetcode] Linked List Cycle II (Java)
- LeetCode: Linked List Cycle 解题报告
- LeetCode:Linked List Cycle--链表快慢指针实现求链表中位和查找链表中是否存在环
- LeetCode Linked List Cycle 解答程序
- leetcode 141 —— Linked List Cycle
- LeetCode | Linked List Cycle
- leetcode: (141) Linked List Cycle
- Leetcode78: Linked List Cycle II
- LeetCode: Linked List Cycle
- LeetCode-linked-list-cycle-ii
- leetcode 141: Linked List Cycle
- LeetCode 142 — Linked List Cycle II(C++ Java Python)
- [LeetCode] Linked List Cycle II
- [Leetcode]Linked List Cycle II
- 【Leetcode】Linked List Cycle II
- LeetCode | Linked List Cycle(判断链表是否有环)
- Leetcode Linked List Cycle II