Sort a linked list using insertion sort.
class Solution {
public:
ListNode *insertionSortList(ListNode *head) {
if(head == NULL || head->next == NULL)
return head;
ListNode *result;
result->val = INT_MIN;
result->next = NULL;
ListNode *cur=head,*pos,*pre;
while(cur!=NULL)
{
pos = result->next;
pre = result;
while(pos != NULL && pos->val <= cur->val)
{
pre = pos;
pos = pos->next;
}
ListNode *temp = cur->next;
pre->next = cur;
cur->next = pos;
cur = temp;
}
return result->next;
}
};