/** * Definition for singly-linked list. * class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { *         val = x; *         next = null; *     } * } */public class Solution {    public boolean hasCycle(ListNode head) {        ListNode p, q;        if (head == null) {            return false;        }            else {            q = head;            p = head.next;        }        // 双指针法,p指针在前,步长为2, q在后,步长为1        while (p != null && q != null) {            if (p == q)                return true;            // p指针先向前迈进一步,遇到空则一定没有环            p = p.next;            if (p == null) {                return false;            }            else {                p = p.next;                q = q.next;            }        }        return false;    }}