public void reorderList(ListNode head) {
		if (head == null || head.next == null)
			return;
		ListNode fast = head, slow = head;
		while (fast != null && fast.next != null && fast.next.next != null) {
			slow = slow.next;
			fast = fast.next.next;
		}
		ListNode middle = slow.next;
		slow.next = null;
		middle = reverseList(middle);
		ListNode n1 = head, n2 = middle;
		mergeList(n1, n2);
	}