【牛客网面试必刷TOP101】链表篇(三)

一、前言

链表是数据结构中重要的一个章节,他的重要性也不言而喻,在未来不管是笔试还是面试都会遇到这类的题目,所以接下来我就会把一些链表的常考的题目全部整理出来供大家学习指正。


二、学习刷题网站

在这里插入图片描述

点击下面链接即可进行刷题学习
开始刷题

三、刷题

先说明一下一些题目取自牛客网面试必刷TOP101
里面的一些题目在我以前的文章详细写到过,如果没有用新的方法就不会再做讲解
链表题目(一)
链表题目(二)
环状链表

<1>单链表的排序

题目链接

描述:

给定一个节点数为n的无序单链表,对其按升序排序。
数据范围:0<n≤100000
要求:时间复杂度 O(nlogn)

示例1

输入:{1,3,2,4,5}
返回值:{1,2,3,4,5}

示例2

输入:{-1,0,-2}
返回值:{-2,-1,0}

思路分析:

①模拟数组

把每个节点的地址放到数组中,然后在数组中对他们的值进行排序,最后在重新构建链表。

int cmp(struct ListNode** e1, struct ListNode** e2)
{
   
    return (*e1)->val - (*e2)->val;
}

struct ListNode* sortInList(struct ListNode* head ) {
   
    if(head == NULL)
    {
   
        return NULL;
    }
    struct ListNode* nums[100000];
    int count = 
评论 119
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命由己造~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值