zoukankan      html  css  js  c++  java
  • leetcode -- Linked List Cycle

    Given a linked list, determine if it has a cycle in it.

    Follow up:
    Can you solve it without using extra space?

    [解题思路]

    双指针问题,fast指针每次走两步,slow指针每次走一步,如果fast指针可以"追上"slow指针,则说明存在环

     1 public class Solution {
     2     public boolean hasCycle(ListNode head) {
     3         // IMPORTANT: Please reset any member data you declared, as
     4         // the same Solution instance will be reused for each test case.
     5         if(head == null){
     6             return false;
     7         }
     8         
     9         ListNode fast = head, slow = head;
    10         while(fast.next != null && fast.next.next != null){
    11             fast = fast.next.next;
    12             slow = slow.next;
    13             if(fast == slow){
    14                 break;
    15             }
    16         }
    17         return (fast.next == null || fast.next.next == null) ? false : true;
    18     }
    19 }
  • 相关阅读:
    CSU oj 2092-Space Golf
    (全国多校重现赛一)F-Senior Pan
    URAL 1152 False Mirrors
    Codeforces D
    URAL 1635 Mnemonics and Palindromes
    URAL
    Codeforces 912E
    Codeforces 911E
    Codeforces 294D
    Codeforces 448E
  • 原文地址:https://www.cnblogs.com/feiling/p/3425590.html
Copyright © 2011-2022 走看看