面试题之链表插入排序

Posted 力哥谈技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题之链表插入排序相关的知识,希望对你有一定的参考价值。

原题:

so short

力哥解析:

对链表进行插入排序

插入排序初始是一个空容器,每遇到一个元素后,在容器中找到该元素应该插入的位置,将其插入即可

对于链表而言,首先初始化一个空链表即可,然后一个一个节点插入

上code:

class Solution {

public:

    ListNode* insertionSortList(ListNode* head) {

        auto header = new ListNode(INT32_MIN);

        while(head)

        {

            auto node = header;

            while(node->next && node->next->val < head->val)

                node = node->next;

            auto next = head->next;

            head->next = node->next;

            node->next = head;

            head = next;

        }

        head = header->next;

        delete header;

        return head;

    }

};

以上是关于面试题之链表插入排序的主要内容,如果未能解决你的问题,请参考以下文章

字节跳动+百度+阿里巴巴高频面试题之链表专题

字节跳动+百度+阿里巴巴高频面试题之链表专题

数据结构之链表OJ练习检验你的链表水平是否合格

45期盘点那些必问的数据结构算法题之基础排序

算法面试章-排序:彻底拿下插入排序和冒泡排序

链表相关面试题:返回一个链表的深度拷贝,对链表进行插入排序,删除链表中重复的结点