题解 | #对链表进行插入排序#

对链表进行插入排序

https://www.nowcoder.com/practice/cc6c61215dfb446f8eccea3663e3d8db

class Solution {
public:
    ListNode* insertionSortList(ListNode* head) {
        ListNode* p = head;
        while(p->next)
        {
            while(p->next && p->next->val>p->val) p = p->next; 
            if(!p->next) return head;
            ListNode *q = new ListNode(0);
            q->val = p->next->val;
            if(q->val<head->val) 
            {
                q->next = head;
                head = q;
            }
            else{
                ListNode *t = head;
                while(t->next && t->next->val<q->val) t = t->next;
                q->next = t->next;
                t->next = q;
            }
            p->next = p->next->next;
        }
        return head;
    }
};

全部评论

相关推荐

Wy_m:只要不是能叫的上名的公司 去实习没有任何意义 不如好好沉淀自己
点赞 评论 收藏
分享
03-28 19:11
铜陵学院 C++
有礼貌的山羊追赶太阳:太典了,连笔试都没有开始就因为HC满了而结束了,而且还卡你不让你再投其他部门的。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务