【归并排序+递归】LeetCode 148. Sort List

LeetCode 148:排序链表 (Sort Linked List) 优先熟练掌握递归归并排序,作为 LeetCode AC 的首选。迭代归并排序在强调空间复杂度下非常重要。拓展常见链表排序变形,熟悉归并/快排的变体问题应对跨题目场景! 阅读详情

LeetCode 148. Sort List

Solution1:我的答案
很多递归

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* sortList(ListNode* head) {
        if (!head) return NULL;
        if (!head->next) return head;
        ListNode *slow = head, *fast = head;
        while (fast->next && fast->next->next) {//快慢指针找链表中点
            slow = slow->next;
            fast = fast->next->next;
        }
        fast = slow->next;//fast重新定义为第二段链表的起点
        slow->next = NULL;//两条链表断开
        ListNode *l1 = sortList(head);
        ListNode *l2 = sortList(fast);
        return mergetwolists(l1, l2);
    }

    ListNode* mergetwolists (ListNode* l1, ListNode* l2) {//合并两个有序链表的代码重用度很高啊
        if (!l1) return l2;
        if (!l2) return l1;
        ListNode *dummy = new ListNode(-1), *cur = dummy;
        while (l1 && l2) {
            if (l1->val <= l2->val) {
                cur->next = l1;
                l1 = l1->next;
            } else {
                cur->next = l2;
                l2 = l2->next;
            }
            cur = cur->next;
        }
        if (l1) cur->next = l1;
        if (l2) cur->next = l2;
        return dummy->next;
    }
};
卫星通信链路预算实战:从EIRP到Eb/N0的完整计算指南(含Excel模板) 本文提供了一份卫星通信链路预算的实战指南,详细解析了从EIRP到Eb/N0的完整计算流程。文章重点对比了C波段与Ku波段在应对降雨衰减等动态因素时的不同策略,并分享了包含核心公式的Excel模板,帮助工程师将理论转化为可执行的系统设计依据。 阅读详情

相关推荐

windows 下AD9361的 no-os master 工程搭建

参考网站: https://wiki.analog.com/resources/fpga/docs/build#windows_environment_setup https://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/software/no-os-setup 参考博客: https://blog.csdn.net...

Bronceyang的博客 7288

归并排序模板(非递归、求逆序对)

剑指 Offer 51. 数组中的逆序对 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= 数组长度 <= 50000 class Solution { private int ans=0; private void merge(int[] nums, int low, int mid, int high) { .

weixin_42324579的博客 621

描述符链表(Descriptor Chain)是什么?

描述符链表是硬件加速数据传输的核心数据结构,通过链式描述符(包含地址、长度、控制标志等)实现DMA自动批量处理,显著降低CPU负载。其工作原理为:CPU初始化链表后,硬件按序处理每个描述符,完成自动跳转与中断通知。在网卡收包、NVMe存储等场景中应用广泛,优势包括批处理、低延迟和灵活调度。需注意内存对齐、缓存一致性等实现细节,优化手段包括预分配描述符池、环形缓冲区等。该技术是网络/存储领域提升吞吐量的关键方案。

guigenyi的专栏 773

LeetCode 148. 排序链表(归并和快速排序)

2021年04月18日 周日 天气晴 【不悲叹过去,不荒废现在,不惧怕未来】 本文目录1. 题目简介2. 题解2.1 选择排序2.2 归并排序 1. 题目简介 148. 排序链表 2. 题解 2.1 选择排序 2.2 归并排序

m0_37433111的博客 758

Fedproto:原型聚合的联邦学习框架

文中说明,联邦学习通过计算传递梯度聚合模型时,客户端之间的异构性通常会阻碍模型优化收敛和泛化性能。故本文提出新的FedProto框架,将梯度替换成为原型,通过计算、聚合从不同客户端收集到的本地原型,然后将全局原型发送回所有客户端,以规范本地模型的训练。对每个客户机进行局部训练的目的是最小化对本地数据的分类损失,同时保持生成的本地原型足够接近相应的全局原型(损失函数最小+正则)。什么是原型?文中提到:“

weixin_47754029的博客 2649

uniapp 使用摄像头 live-pusher (APP)

uniapp 中开发 app 时使用live-pusher踩过的坑

随身笔记 1万+

LeetCode 148.排序链表的五种解法

LeetCode 148.排序链表的五种解法 快速排序递归非递归 归并排序递归非递归 调用STL排序

CS_boy的博客 1417

1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务

本文基于 SAP Cloud Application Programming 编程模型的 OData 服务开发教程的第一步,简述了 SAP Business Technology Platform 里 Business Application Studio 开发工具的打开方式,创建 Dev Space 以及 CAP 项目的创建步骤,以及如何通过 schema.cds 和 service.cds 分别创建 OData 模型和 OData 服务,最后通过 ports preview 打开 OData 服务预览页

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1797

Leetcode刷题笔记——归并排序

使用双指针即可完成二路归并。

weixin_53432918的博客 509

半导体物理基础:载流子输运理论_(4).载流子浓度与费米能级

费米能级(Fermi Level)是描述半导体中电子和空穴能量分布的基准能级。在绝对零度下,费米能级以下的所有能级都被电子占据,费米能级以上的所有能级都是空的。随着温度的升高,电子会获得足够的能量跃迁到费米能级以上的能级,形成导带中的自由电子和价带中的空穴。费米能级在半导体中的位置取决于掺杂浓度和温度。对于本征半导体,费米能级位于禁带的中心;对于掺杂半导体,费米能级会偏移,具体位置取决于掺杂类型和浓度。载流子浓度(Carrier Concentration)是指半导体中自由电子和空穴的数量密度。

2401_87715305的博客 831

【openGauss实战1】openGauss基于CentOS8的部署

基于openGauss数据库在CentOS8上的安装实践。

IT邦德 3050

LeetCode刷题笔记 排序算法 归并排序

归并排序简介 算法思想: ​ 归并排序的核心思想是采用分治策略,将整个数组的排序任务分类为两个子问题,前一半排序和后一半排序,然后整合两个有序部分完成整体排序。即把数组分为若干个子序列,直到单个元素组成一个序列,然后将各阶段得到的序列组合在一起得到最终完整排序序列。 ​ 归并排序任务可以如下分治完成: 1. 把前一半排序 2. 把后一半排序 3. 把两半归并到一个新的有序数组,然后再拷贝回原数组,排序完成。 执行样例: 输入:[29,10,14,37,14,25,10] 算法实现: // 将数组 a 的

王清欢的博客 1729

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Leetcode 148 Sort List

Leetcode 148 Sort List题目思路代码 题目 Given the head of a linked list, return the list after sorting it in ascending order. Follow up: Can you sort the linked list in O(n logn) time and O(1) memory (i.e. constant space)? Example 1: Input: head = [4,2,1,3] Outpu

weixin_43796689的博客 148

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

148. Sort List 链表排序(C++)

问题: Sort List 链表排序,从小到大。 参考链接: 1、 148_Sort List | O(nlogn)链表排序 | Medium 2、 Sort List 3、 LeetCode 148 — Sort List(C++ Java Python) 4、 LeetCode(148)Sort List 思想:排序算法中,自底向上的归并排序算法

sqiu_11的博客 3146

排序题目汇总

文章目录快排归并堆排序 快排 void quickSort(vector<int> &vec, int start, int end) { if (start < end) { int i = start, j = end; int middle = (i + j) / 2; swap(vec[j], vec[middle]); j--; while (...

Leokb24的博客 1899

leetcode-腾讯精选50题-35

148. Sort List Sort a linked list in O(n log n) time using constant space complexity. 作者:jyd 链接:https://leetcode-cn.com/problems/sort-list/solution/sort-list-gui-bing-pai-xu-lian-biao-by-jyd/ # Defini...

qq_34354951的博客 163

leetcode 刷题笔记四

leetcode 46. Permutations 题目意思:给出一个数组,获得它所有的全排列 思路:递归,用一个数组存当前已经放入的数字,遍历数组,如果当前的数字不在list中,则加入,并递归调用该函数,然后将该数字删除,放入其它数字,如果长度跟已有的数组相等,则加入 public List&amp;lt;List&amp;lt;Integer&amp;gt;&amp;gt; permute(int[] nums){ ...

u011376686的博客 286

leetcode 148. Sort List

【代码】leetcode 148. Sort List。

weixin_41554427的博客 916

LeetCode 148. Sort List 题解

本题是归并排序的经典应用问题,主要考察对归并排序思想的理解和使用。通过使用归并排序,我们可以高效地对链表进行排序。归并排序的核心思想是:找到链表的中点,将链表分成两部分,递归地对两部分进行排序,然后将排序后的两部分合并。这种方法不仅适用于排序链表问题,还可以应用于许多其他需要排序的问题。掌握归并排序的思想,对于解决这类问题非常重要。

cannonjinx的博客 4078

Leetcode148. Sort List

在O(nlogn)时间复杂度内排序一个有序链表

magic_jiayu的博客 227

Leetcode 148. Sort List(归并排序)

Leetcode 148. Sort List 题目链接: Sort List 难度:Medium 题目大意: 输入一个链表,对链表进行排序。 思路: 先把链表一分为二,对两个子链表进行排序,然后再把两个排序后的子链表合并起来。对子链表依然可以用这种方法进行排序,直到链表只有一个元素。本文参考高赞回答 代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode

xue1236的博客 222

【归并排序】LeetCode - 148. Sort List

LeetCode - 148. Sort List Sort a linked list in O(n log n) time using constant space complexity. Example 1: Input: 4->2->1->3 Output: 1->2->3->4 Example 2: Input: -1->5->3-&g...

Bob__yuan的博客 417

leetcode148 Sort List

leetcode148 Sort List 题目内容 算法分析相对于时间复杂度为O(nlogn)的排序算法,有快速排序和归并排序。这里采用的是归并排序。思路大致如下: 归并排序的大致思想就是,将链表分成两段,然后通过递归划分,对链表的前半部分和后半部分进行排序后再进行归并排序,最后对排好序的链表进行合并。难点之一是将链表划分成两段,采用的是fastslow.两个指针,一个指针走两步,另一个指针走一

RheaWang的博客 510

LeetCode 148. 排序链表(Sort List)

易错点说明快慢指针未正确断链是断开关键未处理情况base case 条件不能漏merge()指针逻辑写错注意 tail 的移动与连接顺序使用快排/堆排不适用于链表,性能/实现都不友好归并排序是链表排序的最优解法。借助快慢指针找中点,递归合并实现排序。

2501_91641025的博客 452

【LEETCODE】148- Sort List [Python]

Sort a linked list in O(n log n) time using constant space complexity. 题意: 对一个链表排序,O(n log n) time , constant space complexity 思路: 根据题意对时间和空间复杂度的要求,此处排序用归并 参考: 归并排序: http://blog.csd

aliceyangxi1987的博客 2006
上一篇: LeetCode 147. Insertion Sort List
下一篇: 【排序+难题】LeetCode 41. First Missing Positive
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值