首页 > 代码库 > Linked List Cycle

Linked List Cycle

Linked List Cycle

 Total Accepted: 24397 Total Submissions: 68598My Submissions

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

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

Have you been asked this question in an interview? 

Discuss

这个是用快慢指针,记得边界条件的判断就行了。

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
 // 16:48->16:51 pass
public class Solution {
    public boolean hasCycle(ListNode head) {
        ListNode n1,n2;
        n1 = n2 = head;
        if(head==null)
        {
            return false;
        }
        while(true)
        {
            if(n2==null || n2.next==null)
            {
                break;
            }else
            {
                n2 = n2.next.next;
            }
            n1 = n1.next;
            if(n1==n2)
            {
                return true;
            }
        }
        return false;
    }
}