public ListNode swapPairs(ListNode head) {
		if (head == null || head.next == null)
			return head;
		ListNode pre = new ListNode(0);
		pre.next = head;
		head = pre;
		ListNode cur = pre.next, post = cur.next;
		while (post != null) {
			ListNode temp = post.next;
			post.next = cur;
			cur.next = temp;
			pre.next = post;
			pre = cur;
			cur = temp;
			post = temp;
			if (cur != null)
				post = cur.next;
		}
		return head.next;

	}