public static ListNode hasCycle(ListNode head) {
		ListNode p = head;
		ListNode q = head;
		while (null != p && null != q) {
			p = p.next;
			q = q.next;
			if (null == p || null == q) return null;
			q = q.next;
			if (p == q) return p;
		}
		return null;
    }