173. 链表插入排序

作者: 和蔼的zhxing | 来源:发表于2018-02-01 11:15 被阅读14次

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

    插入排序

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

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

    相关文章

      网友评论

        本文标题:173. 链表插入排序

        本文链接:https://www.haomeiwen.com/subject/zofdzxtx.html