lintcode程序员首页投稿(暂停使用,暂停投稿)

173. 链表插入排序

2018-02-01  本文已影响14人  和蔼的zhxing

用插入排序对链表排序
样例
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;
    }
上一篇 下一篇

猜你喜欢

热点阅读