Sort a linked list using insertion sort.
单链表的插入排序:
class Solution {
public:
ListNode* insertionSortList(ListNode* head) {
ListNode* new_head = NULL;
while(head != NULL){
ListNode* node = head;
head = head->next;
node->next = NULL; //这句没有leetcode也能通过,不过还是应该加上
insertion_sort(&new_head, node);
}
return new_head;
}
void insertion_sort(ListNode** pp, ListNode* node) {
while(*pp != NULL && (*pp)->val < node->val)
pp = &((*pp)->next);
node->next = *pp;
*pp = node;
}
};