【简单】21. 合并两个有序链表

c++的list(合并两个有序数组) 实现C++标准库中list的merge函数(以list<int>list<int>list<int>为例) /** 功能:将l1和l2合并到l1, 并清空l2. 输入:l1, l2是两个已经排好序的list,类型:list<int> **/ void sorted_merge(list<int>& l1, list<int>& l2) { list<int>::iterator plist, plist2; 阅读详情

【题目】
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
来源:leetcode
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/
【示例】
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
【代码】
【常规法】

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if((l1&&!l2)||(!l1&&!l2))
            return l1;
        if(!l1&&l2)
            return l2;
        ListNode*node=NULL,*nownode=NULL;
        while(l1&&l2){
            if(l1->val<=l2->val){
                if(node==NULL){
                    node=nownode=l1;
                }else{
                    nownode->next=l1;
                    nownode=l1;
                }
                l1=l1->next;
            }else{
                if(node==NULL)
                    node=nownode=l2;
                else{
                    nownode->next=l2;
                    nownode=l2;
                }
                l2=l2->next;
            }
        }
        if(l1)
            nownode->next=l1;
        else
            nownode->next=l2;
        return node;
    }
};

【代码略简】

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
private:
    vector<int> v;
public:
    void deal(ListNode*l1,ListNode*l2,int flag){
        ListNode* pre;
        while(l1){
            v.push_back(l1->val);
            pre=l1;
            l1=l1->next;
        }
        if(flag)
            pre->next=l2;
    }
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        if(l1&&!l2)
            return l1;
        if(!l1&&l2)
            return l2;
        if(!l1&&!l2)
            return l1;
        int cnt;
        ListNode *node=l1;
        deal(l1,l2,1);
        deal(l2,NULL,0);
        sort(v.begin(),v.end());
        while(node){
            node->val=v[cnt++];
            node=node->next;
        }
        return l1;
    }
};
Android——Handler详解 1. 简介 Handler是一套 Android 消息传递机制 可以说只要有异步线程与主线程通信的地方就一定会有 Handler。 在多线程的应用场景中,将工作线程中需更新UI的操作信息 传递到 UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理 使用Handler消息传递机制主要是为了多个线程并发更新UI的同时,保证线程安全 2. 相关概念解释 Handler、Message、Message Queue、Looper Android消息机制: 以Handler的sendMes 阅读详情

相关推荐

Android 白名单保活实战:主流厂商适配指南

本文详细解析了Android应用白名单保活的实战策略,重点针对华为、小米、OPPO、vivo等主流厂商的系统特性,提供了精准的后台设置页面跳转适配方案。文章从基础的前台服务实现讲起,深入讲解了白名单的判断、申请与厂商适配的核心代码与避坑指南,旨在帮助开发者合规、稳定地提升应用后台存活率。

motor的博客 1863

LeetCode 21. 合并两个有序链表

题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = [], l2 = [0] 输出:[0] 提示: 两个链表的节点数目范围是 [0, 50] -100 <= Node.val <= 100 l1 和 l2 均按 非递减顺序 排列 来源:力扣(Lee

午夜的行人 378

Linux CentOS7文件系统(/dev/var)的容量扩充

原因是之前安装docker后,再想安装Nessus,系统说home、var文件系统的内存都不够。

JHoanna的博客 3226

【算法】合并两个有序链表(C++)

LeetCode 21# 合并两个有序链表 思路整理

xhd0728的博客 4482

Kali下RTL8812AU网卡5G抓包精准适配指南

WiFi监听模式是无线安全测试的基础能力,其核心在于网卡驱动对802.11a/n/ac协议栈的完整支持。RTL8812AU系列USB无线网卡因成本低、兼容性广被广泛用于渗透测试,但其芯片版本碎片化(如VA/VC/ACM)与Linux内核演进(6.1~6.5)存在严重适配断层,导致5GHz频段Beacon帧捕获失败、信道切换异常、注入功能残缺等典型问题。技术价值在于突破‘即插即用’幻觉,建立从USB设备ID识别、固件版本校验到射频寄存器级补丁的全链路可控流程。典型应用场景包括CTF无线赛题实战、红蓝对抗中的W

weixin_33783283的博客 765

Java写一条吃满屏幕的贪吃蛇(A*自动寻路算法和一些简单的策略) 二

上一篇文章介绍了一条贪吃蛇的简单实现,这一篇介绍贪吃蛇的自动寻路算法 ,说是自动寻路其实也就是一种遍历地图的算法,如果玩过游戏肯定知道游戏里面一般会有自动寻路功能,贪吃蛇的自动寻路算法也就是实现这个功能。下面慢慢介绍这种算法吧。    最开始,我没有在网上找资料的时候,我对于设计寻路算法的看法是遍历整个地图,将障碍物做上标记,然后找一条能够到达目的地的线路就可以了。所以最开始我用了特别暴力的方式来...

Sober_yang的博客 3633

21. Merge Two Sorted Lists(合并两个有序链表)(c++实现)

题目描述 Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. Example: Input: 1->2->4, 1->3->4 Output: ...

ccql's Blog 399

ESXI 7 :创建统信V20_1050d服务器系统虚拟机

记录一下在 X86 架构创建统信V20_1050d 虚拟机遇到的问题。已遇到的问题有①:常规服务器环境下网络连接失败重点:按照桌面版本,有问题处理简单。

guyuelin123的博客 1969

数据结构C++算法实现1 - 合并两序列

本人开辟一个专栏,把严蔚敏 数据结构 这本书上的算法和数据结构用C++实现,网上和她书本光盘也带了C的实现方法,但是其实对于初学者来说真不是那么好自己运行看结构,和自己去修改“玩”的。 本人觉得写程序的能力应该是“玩”出来的,不然会觉得学计算机编程很枯燥的。 所以这里都是给出了完整的C++数据结构或算法程序。 而在C++里面和C其实没有根本的区别,但是我们可以很好的利用C++的一些容器,就可...

架构设计 336

树莓派介绍与可安装的操作系统

树莓派是一款由英国树莓派基金会开发的信用卡大小的微型计算机。处理器(CPU)内存(RAM)图形处理器(GPU)USB 接口网络接口(以太网和 Wi-Fi)视频输出(HDMI)音频输出用户只需添加电源、存储卡、显示器和输入设备(键盘、鼠标),就可以将其当作一台功能齐全的电脑使用。主要特点:低成本:价格亲民,适合教育和个人项目。小巧便携:体积小,便于携带和部署。功能强大:支持多种编程语言和操作系统,功能不逊于传统电脑。树莓派从最初的教育工具发展成为功能强大的多用途平台。最新的树莓派 5。

像风一样自由的博客 2200

Cesium中实现GPU计算的泥石流地形侵蚀

通过模拟分析,可以提前识别可能发生泥石流的区域,为防灾减灾提供依据,及时发布预警,避免或减少人员伤亡和财产损失。:在建设公路、桥梁、水库等基础设施时,通过泥石流模拟分析,可以预测泥石流可能对这些设施的影响,帮助工程设计者采取合适的防护措施,确保设施的安全性。:模拟分析有助于为灾后救援工作提供科学依据,确定受灾区域的范围、救援难度等,为救援队伍制定合理的行动方案,提升救援效率。:泥石流是山区常见的地质灾害之一,通过模拟分析可以评估某一地区发生泥石流的风险,指导土地使用规划、人口迁移等决策。

weixin_43481439的博客 1321

Leetcode算法题【简单】21.合并两个有序链表

具体步骤请查看每个关键步骤的代码注释。

qq_40800519的博客 307

AI测试:手把手教你用AI做Web自动化测试「喂饭教程」

本文介绍了基于MCP协议和使用 mcp-use + playwright-mcp 构建智能Web自动化测试框架的实践方法。通过整合大语言模型的理解能力与测试工具可靠性,该方案支持用自然语言描述测试流程,自动转换为可执行的测试步骤,提升测试效率,支持复杂场景和多步骤流程,为自动化测试提供了新思路。

blues_C的博客 1289

21. 【简单】合并两个有序链表

21. 合并两个有序链表题目描述1.迭代代码2.递归代码 链接 题目描述 1.迭代 代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ cl...

乌拉拉乌拉乌拉累 290

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

leetcode-21 | 合并两个有序链表 简单难度

title: leetcode-21 | 合并两个有序链表 简单难度 date: 2019-5-8 10:03:20 tags: - leetcode 简单难度 - 链表 题目描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:1->2->4, 1->3->4 输出:1->1->2->3-...

梦否 427

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

力扣 [21] [简单] [合并两个有序链表]

21. 合并两个有序链表 难度简单1796收藏分享切换为英文接收动态反馈 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = [], l2 = [0] 输出:[0] 提示: 两个链表的节点数目范围是[0, 50] -1...

CAO294227873的博客 210

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

[数组][简单]21.合并两个有序链表

tags: 简单 线性表 单链表 链表合并 flag: green style: summer date: ‘2019-6-7’ 21.合并两个有序链表 一、题目 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4-&g...

GJXAIOU 的 优快云 博客 202

LeetCode-21、合并两个有序链表-简单

LeetCode-21、合并两个有序链表-简单 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 代码: # Definition for singly-linked list. # clas...

clover_my的博客 84

【Leetcode】——JavaScript——简单——21. 合并两个有序链表

题目要求 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。  示例: 输入:1-&gt;2-&gt;4, 1-&gt;3-&gt;4 输出:1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4 解题思路一(推荐) 这题用了递归的思路,一共六行,很是精简,非常值得学习。 首先判断是否有一个链表为空,有,则返回不为空的链表。 若都不...

LimonSea的博客 471

21. 合并两个有序链表(简单题)

题目描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-two-sorted-lists 解...

闭关修炼 877

21.leetcode 合并两个有序链表(简单)

leetcode python 刷题记录,从易到难 一、题目 二、解答 1.思路 定义一个空链表,定义另一个空链表等于前面的空链表。循环遍历两个链表,挨个判断两个节点之间的大小,如果是小的,放到空链表后,小的那个节点指针后移,同时空链表指针后移,直到有一个节点为空时退出循环。之后把另一个链表尚未遍历完的部分添加到空链表后面,至此拼接完成。 2.实现 class Solution(object): def mergeTwoLists(self, l1, l2): """

终回首的博客 236

【LeetCode】21.合并两个有序链表(简单)

被 OJ 毒打的第七天,您的好友指针上线!

hxw3274743的博客 286

21.合并两个有序链表【简单】

21. 合并两个有序链表 【简单】 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例 3: 输入:l1 = [], l2 = [0] 输出:[0] 提示: 两个链表的节点数目范围是 [0, 50] -100 <= Node.val <= 100 l1

伍六琪的博客 121

LeetCode_21_简单_合并两个有序链表

LeetCode_21:合并两个有序链表(简单)

Linshaodan520的博客 1578

21. 合并两个有序链表[简单]

题目 菜鸟解答 /** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l...

Keep 140

Leetcode—21.合并两个有序链表【简单】

运行结果 之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

Atticus的博客 428
上一篇: 【简单】872. 叶子相似的树
下一篇: 【简单】884. 两句话中的不常见单词
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值