合并两个有序链表(C++)

news2024/11/26 2:51:07

题目

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

输入:l1 = [], l2 = []
输出:[]

示例 3:

输入:l1 = [], l2 = [0]
输出:[0]

C++代码

#include <iostream>
using namespace std;

//创建链表结构体
struct ListNode {
	int val;
	ListNode* next;
	ListNode() : val(0), next(nullptr) {}
	ListNode(int x) : val(x), next(nullptr) {}
};

/*
* 合并两个有序链表问题
* 设置l1,l2为空的情况,如果l1节点的值小于l2,在l1链表上进行递归并返回l1
* 否则在l2链表上进行递归并返回l2
*/
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
	if (!l1) {
		return l2;
	}
	if (!l2) {
		return l1;
	}
	if (l1->val <= l2->val) {
		l1->next = mergeTwoLists(l1->next, l2);
		return l1;
	}
	else {
		l2->next = mergeTwoLists(l2->next, l1);
		return l2;
	}
}

int main() {
	ListNode* i1 = new ListNode(1);
	ListNode* i2 = new ListNode(2);
	ListNode* i3 = new ListNode(4);
	i1->next = i2;
	i2->next = i3;
	i3->next = nullptr;
	ListNode* l1 = i1;
	ListNode* j1 = new ListNode(1);
	ListNode* j2 = new ListNode(3);
	ListNode* j3 = new ListNode(4);
	j1->next = j2;
	j2->next = j3;
	j3->next = nullptr;
	ListNode* l2 = j1;

	ListNode* ans = mergeTwoLists(l1, l2);
	while (ans) {
		cout << ans->val << " ";
		ans = ans->next;
	}
	return 0;
}

分析

合并两个有序链表问题,设置 l1, l2 为空的情况,如果 l1 节点的值小于 l2,在 l1 链表上进行递归并返回 l1,否则在 l2 链表上进行递归并返回 l2。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1147043.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

案例分析大汇总

案例分析心得 2018-2022年的案例分析考试内容汇总&#xff08;近五年&#xff09; 架构设计题型 软件系统建模 数据库 Web 系统设计 2018年 胖/瘦客户端 C/S 架构非功能性需求 数据流图DFDE-R图Essential Use Cases(抽象用例)&#xff0c;Real Use Cases(基础用例)信息工…

Prometheus接入AlterManager配置钉钉告警(基于K8S环境部署)

文章目录 一、钉钉群创建报警机器人二、安装Webhook-dingtalk插件三、配置Webhook-dingtalk插件对接钉钉群四、配置AlterManager告警发送至Webhook-dingtalk五、Prometheus接入AlterManager配置六、部署PrometheusAlterManager(放到一个Pod中)七、测试告警 注意&#xff1a;请基…

Xubuntu16.04系统中create_ap开启5G网络的踩坑记录

Xubuntu16.04系统中安装create_ap创建无线AP&#xff1a; https://blog.csdn.net/qq_45445740/article/details/133972642?spm1001.2014.3001.5501 目录 1.create_ap.conf 配置文件解析2.关于信号强度和延时2.1 信号强度2.2 信号延时2.3 网络延时测试工具推荐——PingPlotter …

Linux | 程序替换

前言 本文主要记录小编学习程序替换中遇到的一些问题&#xff0c;并分享记录下来&#xff0c;希望可以给大家带来帮助&#xff1b; 一、初始程序替换 所谓程序替换&#xff0c;就是将本进程的代码和数据进行替换&#xff0c;运行新程序的代码&#xff1b;我们之前在讲解进程地址…

CDN技术:提升网络效能与用户满意度

网络的持续增长和数字内容的快速传播已经引发了对网络性能和用户体验的不断挑战。内容交付网络&#xff08;CDN&#xff09;技术应运而生&#xff0c;以应对这些挑战&#xff0c;实现内容高效分发&#xff0c;提升了整体网络质量。 CDN的核心原理在于通过在全球范围内部署多个服…

【C++初阶】类和对象——操作符重载const成员函数取地址重载日期类的实现

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C头疼记 目录 前言&#xff1a; 运算符重载 运算符重载 赋值运算符重载 前置和后置重载 const成员 取地址及const取地址操作符重载 使用函数操作符重载完成日期类的实现 前言&#xff1a; 上篇文…

YOLO v1(2016.5)

文章目录 AbstractIntroduction过去方法存在的问题我们提出的方法解决了... Unified DetectionNetwork DesignTrainingInference Comparison to Other Detection SystemsDeformable parts modelsR-CNNOther Fast DetectorsDeep MultiBoxOverFeatMultiGrasp ExperimentsConclusi…

java项目之机房预约系统(ssm框架)

项目简介 机房预约系统实现了以下功能&#xff1a; 管理员&#xff1a;个人中心、学生管理、教师管理、机房号管理、机房信息管理、申请预约管理、取消预约管理、留言板管理、论坛管理、系统管理。学生&#xff1a;个人中心、机房信息管理、申请预约管理、取消预约管理、留言…

Elasticsearch:使用 E5 嵌入模型进行多语言向量搜索

作者&#xff1a;JOSH DEVINS 在这篇文章中&#xff0c;我们将介绍多语言向量搜索。 我们将使用 Microsoft E5 多语言嵌入模型&#xff0c;该模型在零样本和多语言设置中具有最先进的性能。 我们将介绍多语言嵌入的一般工作原理&#xff0c;以及如何在 Elasticsearch 中使用 E…

蓝桥杯每日一题2023.10.29

螺旋折线 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 在图中我们可以观察到四个对角线的值均为特殊点&#xff0c;其他的点可以根据这几个 进行偏移量的计算从而进行表示&#xff0c;此题主要是找到规律即可 #include<bits/stdc.h> using namespace std; typedef long…

ENSP L2TP 配置

拓扑 真机模拟出差员工使用l2tp客户端接入公司内网。 客户端下载&#xff1a;URL 说明&#xff1a; 确保真机与AR1设备之间网络可达&#xff0c;且真机上可以访问到LNS的 10.100.1.254 真机网卡配置 真机上添加去往LNS的路由 测试 LNS配置 #l2tp enable #ip pool shass…

聊聊装饰模式

缘起 某日&#xff0c;阳光明媚&#xff0c;绿草花香。Leader突然找到了小明&#xff1a;“小明&#xff0c;如果让你将一个人的穿着使用代码来实现&#xff0c;你该怎么完成呢&#xff1f;” 小明一听&#xff0c;回答道:“Leader&#xff0c;这个不难&#xff0c;马上就完事…

【PyQt学习篇 · ④】:QWidget - 尺寸操作

文章目录 QWidget简介QWidget大小位置操作案例一案例二 QWidget尺寸限定操作案例 内容边距案例 QWidget简介 在PyQt中&#xff0c;QWidget是一个基本的用户界面类&#xff0c;用于创建可见的窗口组件。QWidget可以包含多种类型的子组件&#xff0c;如QPushButton、QLabel、QLi…

matlab 中的基本绘图指令与字符串操作指令

字符串指令 创建字符串 使用单引号将字符序列括起来创建字符串使用单引号创建的字符串是一个字符数组&#xff0c;每个字符都被视为一个独立的元素 可以通过索引访问每个字符使用双引号创建的字符串是一个字符串数组&#xff0c;整个字符串被视为一个元素 无法通过索引访问单个…

Linux shell编程学习笔记17:for循环语句

Linux Shell 脚本编程和其他编程语言一样&#xff0c;支持算数、关系、布尔、字符串、文件测试等多种运算&#xff0c;同样也需要进行根据条件进行流程控制&#xff0c;提供了if、for、while、until等语句。 之前我们探讨了if语句&#xff0c;现在我们来探讨for循环语句。 Li…

海外问卷调查是怎么做的?全方位介绍!

橙河这样说&#xff0c;相信大家应该不难理解。 国外问卷调查目前主要有三种形式&#xff1a;口子查、站点查和渠道查。橙河自己做的是渠道查。 站点查是最早的问卷形式&#xff0c;意思是我们需要登录到问卷网站上&#xff0c;就可以做问卷了。但想要在网站上做问卷&#xf…

YOLO轻量化改进 , 边缘GPU友好的YOLO改进算法!

在本文中&#xff0c;作者根据现有先进方法中各种特征尺度之间缺少的组合连接的问题&#xff0c;提出了一种新的边缘GPU友好模块&#xff0c;用于多尺度特征交互。此外&#xff0c;作者提出了一种新的迁移学习backbone采用的灵感是来自不同任务的转换信息流的变化&#xff0c;旨…

《Attention Is All You Need》阅读笔记

论文标题 《Attention Is All You Need》 XXX Is All You Need 已经成一个梗了&#xff0c;现在出现了很多叫 XXX Is All You Need 的文章&#xff0c;简直标题党啊&#xff0c;也不写方法&#xff0c;也不写结果&#xff0c;有点理解老师扣论文题目了。 作者 这个作者栏太…

Yolo-Z:改进的YOLOv5用于小目标检测

目录 一、前言 二、背景 三、新思路 四、实验分析 论文地址&#xff1a;2112.11798.pdf (arxiv.org) 一、前言 随着自动驾驶汽车和自动驾驶赛车越来越受欢迎&#xff0c;对更快、更准确的检测器的需求也在增加。 虽然我们的肉眼几乎可以立即提取上下文信息&#xff0c;即…