147 Insertion Sort List
链接:https://leetcode.com/problems/insertion-sort-list/
问题描述:
Sort a linked list using insertion sort.
Hide Tags Linked List Sort
这题使用插入排序来对链表进行排序。可以构造一个节点,然后依次读入需排序的链表,每次根据值的大小插入链表即可。
class Solution
{
public:
ListNode *insertionSortList(ListNode *head)
{
if(head==NULL || head->next==NULL) return head;
ListNode *t=new ListNode(INT_MIN);
t->next=head;
head=head->next;
t->next->next=NULL;
while(head)
{
ListNode *next=head->next;
ListNode *pre;
ListNode *p=t;
while(p->next!=NULL && p->val<=head->val)
{
pre=p;
p=p->next;
}
if(p->next==NULL&&p->val<=head->val)
{
pre=p;
pre->next=head;
head->next=NULL;
}
else
{
pre->next=head;
pre->next->next=p;
}
head=next;
}
ListNode *result=t->next;
delete t;
return result;
}
};