链接:https://oj.leetcode.com/problems/insertion-sort-list/
描述:
Sort a linked list using insertion sort.
代码:
ListNode *insertionSortList(ListNode *head) {
if(head == NULL || head->next == NULL) return head;
ListNode dumy(-1);
dumy.next = head;
ListNode *pre = &dumy;
ListNode *last = head;
ListNode *cur = head->next;
while( cur != NULL )
{
pre = &dumy;
while( pre != last &&
pre->next->val <= cur->val )
{
pre = pre->next;
}
if( pre == last ){
last = last->next;
}else {
last->next = cur->next;
cur->next = pre->next;
pre->next = cur;
}
cur = last->next;
}
return dumy.next;
}