Sort a linked list using insertion sort.
//链表的插入排序
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* insertionSortList(ListNode* head) { if(!head || !head->next) return head; ListNode *dummy = new ListNode(-1); while(head){ ListNode *pNext = head->next; ListNode *pCur = dummy; while(pCur->next&&pCur->next->val<head->val){ pCur = pCur->next; } head->next = pCur->next; pCur->next = head; head = pNext; } return dummy->next; } };
原文:http://www.cnblogs.com/xiuxiu55/p/6500594.html