码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode -- Linked List Cycle

时间:2015-09-12 21:45:14      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

Question:

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

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

 

Analysis:

思路一:快慢指针法。前面用到过快慢指针寻找链表的中间节点。若快慢指针会相遇,则说明有环;否则快指针遇到null,则说明无环。

 

Answer:(Beats 100% java submission~)

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

 

LeetCode -- Linked List Cycle

标签:

原文地址:http://www.cnblogs.com/little-YTMM/p/4803579.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!