141. Linked List Cycle

2019-03-18  本文已影响0人  苏州城外无故人
image.png
 //hashtable
    //Time complexity O(n)
    //Space complexityO(n)

//    public boolean hasCycle(ListNode head) {
//        Set<ListNode> nodes = new HashSet<>();
//        while (head != null) {
//            if (nodes.contains(head)) {
//                return true;
//            } else {
//                nodes.add(head);
//            }
//            head = head.next;
//        }
//        return false;
//    }

    /**
     * Time complexity O(n)
     * Space complexityO(1)
     * @param head
     * @return
     */

   public boolean hasCycle(ListNode head) {
        if (head == null || head.next == null) {
            return false;
        }
        ListNode slow = head;
        ListNode fast = head.next;
        while (slow != fast) {
            if (fast == null || fast.next == null) {
                return false;
            }
            slow = slow.next;
            fast = fast.next.next;
        }
        return true;
    }
    }

上一篇 下一篇

猜你喜欢

热点阅读