描述
用插入排序对链表排序
样例
Given 1->3->2->0->null, return 0->1->2->3->null
思路
先看下插入算法 百度-插入算法
这道题不难,理解插入算法就会写了
创建一个新链表,从原链表的head结点开始,用插入算法将结点插入到新链表中
代码实现(c++)
ListNode *insertionSortList(ListNode *head) {
ListNode *dummy = new ListNode(0);
while(head != NULL) {
ListNode *temp = dummy;
ListNode *next = head->next;
while(temp->next != NULL && temp->next->val < head->val) {
temp = temp->next;
}
head->next = temp->next;
temp->next = head;
head = next;
}
return dummy->next;
}