ListNode reverse(ListNode head) {
		if (head == null)
			return null;
		if (head.next == null)
			return head;
		else {
			ListNode pre = head;
			ListNode cur = pre.next;
			pre.next = null;
			ListNode nxt = cur.next;
			while (nxt != null) {
				cur.next = pre;
				pre = cur;
				cur = nxt;
				nxt = cur.next;
			}
			cur.next = pre;
			return cur;
		}
	}