173. 链表插入排序插入排序

2018-09-04 11:26:41 浏览数 (1)

用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null

插入排序

主要是怎么找到这个插入的位置,我一开始用了一种复杂的方法,没有调对,很气,这两天脑子有点糊,不适合学习,可能是快放寒假的原因。

代码语言:javascript复制
 ListNode * insertionSortList(ListNode * head) {
        if(head==NULL)
        return NULL;
        ListNode *first=new ListNode(0);
        while(head!=NULL)
        {
            ListNode *p=first;
            while(p->next!=NULL&&p->next->val<head->val)
            {
              //这里用的是p->next的原因就是如果p的后面是NULL,的话,p也是要插入的!
                p=p->next;          
            }
            ListNode *tmp=head->next;      
            head->next=p->next;
            p->next=head;
            head=tmp;
        }
        return first->next;
    }

0 人点赞