public static ListNode getCycleStartNodeNonEntraSpace(ListNode head) {
		if (head == null) {
			return null;
		}
		ListNode pointer1 = head;
		ListNode pointer2 = head;
		while (pointer1 != null && pointer2 != null) {
			pointer1 = pointer1.next;
			if (pointer2.next == null) {
				return null;
			}
			pointer2 = pointer2.next.next;
			if (pointer1 == pointer2) {
				break;
			}
		}
		if (pointer1 == null || pointer2 == null) {
			return null;
		}
		pointer1 = head;
		while (pointer1 != pointer2) {
			pointer1 = pointer1.next;
			pointer2 = pointer2.next;
		}
		return pointer1;
	}