147Insertion Sort List

来源:互联网 发布:html5与webgl编程 pdf 编辑:程序博客网 时间:2024/05/20 18:41

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;}

};

0 0
原创粉丝点击