链表的插入排序,就是维护一个新链表,然后从原来链表中提数字插入就是了。思想有点像反转链表。
public ListNode insertionSortList(ListNode head) {
ListNode dummy = new ListNode(0);
ListNode p = head;
while (p != null) {
ListNode q = dummy;
while (q.next != null && q.next.val < p.val) {
q = q.next;
}
ListNode temp = p.next;
p.next = q.next;
q.next = p;
p = temp;
}
return dummy.next;
}