LeetCode141:Given a linked list, determine if it has a cycle in it.
2015-02-01 19:55
411 查看
LeetCode141:Given a linked list, determine if it has a cycle in it.
给定链表,判断是否存在环
1、该题的思路,如果使用额外空间,解决就很容易。我们用map存储每个节点引用,如果该引用的值大于1,就说明在该位置存在环。
同样可以用该方法返回环存在的位置
给定链表,判断是否存在环
1、该题的思路,如果使用额外空间,解决就很容易。我们用map存储每个节点引用,如果该引用的值大于1,就说明在该位置存在环。
public boolean hasCycle(ListNode head) { if (head == null) return true; if (head.next == null && head.next == head) return false; Map<ListNode, Integer> map = new HashMap<ListNode, Integer>(); ListNode p = head; while (p != null) { if (map.containsKey(p)&&map.get(p) == 1) return true; map.put(p, 1); p = p.next; } return false; }
同样可以用该方法返回环存在的位置
public ListNode detectCycle(ListNode head) { if (head == null) return null; if (head.next == null && head.next == head) return head; Map<ListNode, Integer> map = new HashMap<ListNode, Integer>(); ListNode p = head; while (p != null) { if (map.containsKey(p) && map.get(p) == 1) return p; map.put(p, 1); p = p.next; } return null; }
相关文章推荐
- LeetCode: Linked List Cycle [141]
- Leetcode_141_Linked List Cycle
- (LeetCode 141/142)Linked List Cycle
- LeetCode 141 Linked List Cycle
- 【leetcode】【单链表】【141】Linked List Cycle
- [leetcode 141] Linked List Cycle
- LeetCode 141 — Linked List Cycle(C++ Java Python)
- leetcode-141-Linked List Cycle
- LeetCode141:Linked List Cycle
- leetcode 141 —— Linked List Cycle
- Given a linked list, return the node where the cycle begins. If there is no cycle, return null.
- LeetCode(141)Linked List Cycle
- leetcode[141]Linked List Cycle
- [Leetcode 141] Linked List Cycle
- leetcode_141题——Linked List Cycle (set)
- leetcode_141_Linked List Cycle
- [leetcode]141 Linked List Cycle
- Java for LeetCode 141 Linked List Cycle
- LeetCode 141: Linked List Cycle
- LeetCode(141)(142) Linked List Cycle I II