1.用插入排序对链表排序
2.小的节点前移,大的节点后移
3.
/**
* Definition of ListNode
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The head of linked list.
*/
ListNode *insertionSortList(ListNode *head) {
// write your code here
ListNode *dummy=new ListNode(0);
while(head!=NULL)
{
ListNode *node=dummy;
while(node->next!=NULL&&node->next->val<head->val){node=node->next;}
ListNode *temp=head->next;
head->next=node->next;
node->next=head;
head=temp;
}
return dummy->next;
}
};
4.感想
记得老师在群里发过类似这个题的代码,差不多类型的.多看几遍就明白了解题思路.