合并两个有序链表算法(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 均按 非递减顺序 排列

算法一:

思路:

使用指针法,创建新链表,逐个存入新链表

代码实现:
# include<stdlib.h>struct ListNode{int val;struct ListNode *next;
};struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){struct ListNode *newhead=(struct ListNode*)malloc(sizeof(struct ListNode));//新链表struct ListNode *prev=newhead;//节点指针while(list1!=NULL && list2!=NULL){//都不为空节点if(list1->val < list2->val){//list1小prev->next=list1;//入新链表list1=list1->next;//list1后移}else{//list2prev->next=list2;list2=list2->next;}prev=prev->next;//节点指针后移}prev->next=list1==NULL?list2:list1;//取另一个非空的链表节点return newhead->next;//返回头节点指针
}

算法二:

思路:

使用递归法,逐步缩小链表规模

判断链表节点指向值大小,小的节点指针后移,进行递归,最终合并完成

代码实现:
# include<stdlib.h>struct ListNode{int val;struct ListNode *next;
};struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){if(list1==NULL){//list1为空节点return list2;//返回list2}else if(list2==NULL){//list2为空节点return list1;//返回list1}else if(list1->val < list2->val){//list1指向的值更小list1->next=mergeTwoLists(list1->next,list2);//list1->next递归return list1;//返回list1}else{//list2指向的值更小list2->next=mergeTwoLists(list1,list2->next);//list2->next递归return list2;//返回list2}
}

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

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

相关文章

修改maven本地仓库位置

2019独角兽企业重金招聘Python工程师标准>>> 首先需要安装好&#xff0c;假设安装位置在&#xff1a;D:\****\maven\apache-maven-3.3.3修改本地仓库位置&#xff0c;打开配置文件&#xff1a;D:\****\maven\apache-maven-3.3.3\conf\settings.xml<!-- localRepo…

iOS sqlite

iOS sqlite数据库操作。步骤是&#xff1a; 先加入sqlite开发库libsqlite3.dylib&#xff0c; 新建或打开数据库&#xff0c; 创建数据表&#xff0c; 插入数据&#xff0c; 查询数据并打印 1、新建项目sqliteDemo,添加使用sqlite的库libsqlite3.dylib 2、sqlite 的方法 sqlite…

ad如何设置pcb板子形状_手把手教你在PCB上添加泪滴

泪滴(Teardrops)在PCB电路板设计中&#xff0c;为了让焊盘更坚固&#xff0c;防止机械制板时焊盘与导线之间断开&#xff0c;常在焊盘和导线之间用铜膜布置一个过渡区&#xff0c;形状像泪滴&#xff0c;故常称做补泪滴&#xff08;Teardrops&#xff09;。泪滴的作用避免电路板…

华为云hcip认证试题_首信AAA认证计费系统通过华为云兼容性认证,成为华为认证级ISV伙伴...

点击上方“蓝字”关注我们首信AAA认证计费系统软件3.0在2020年9月24日通过华为云Stack 6.5(鲲鹏)的兼容性测试&#xff0c;最终获得华为技术认证书及HUAWEI COMPATEBLE相关认证徽标使用权。同时&#xff0c;首信科技获得华为认证级ISV伙伴认证证书。本次获得的产品兼容性认证及…

Netty4.x中文教程系列(二) Hello World !

在中国程序界。我们都是学着Hello World !慢慢成长起来的。逐渐从一无所知到熟悉精通的。 第二章就从Hello World 开始讲述Netty的中文教程。 首先创建一个Java项目。引入一个Netty 框架的包。这个步骤我在本系列教程的后面就不在重复了。 先上一张我示例的项目工程图给大家看一…

jq金钱如何加千分位_拼多多如何玩转场景推广

首先&#xff0c;我们先弄明白拼多多场景推广的展示以及扣费规则&#xff1a;排名规则&#xff1a;综合排名商品质量分广告出价。商品质量分点击率转化率销量交易额。扣费规则&#xff1a;扣费&#xff08;下一位的出价*下一位的商品素材点击率&#xff09;/自己的商品素材点击…

硬盘安装win10,笔者教你如何一步步从硬盘安装win10系统

https://www.ghostxpsp3.net/czxtjc/12280.html 对于没有U盘系统和光驱的用户来说&#xff0c;使用硬盘安装系统&#xff0c;无疑是最好的解决方案。今天笔者教你如何一步步从硬盘安装win10系统&#xff0c;笔者教你如何一步步从硬盘安装win10系统要保证在能进入系统的前提下进…

prometheus命令_Prometheus入门教程(一):Prometheus 快速入门

点击蓝色“陈树义”关注我哟Prometheus 是任何一个高级工程师必须要掌握的技能。那么如何从零部署一套 Prometheus 监控系统呢&#xff1f;本篇文章将从 Prometheus 的原理讲起&#xff0c;手把手带你用一个最简单的例子部署一套 Prometheus 监控系统。基本原理Prometheus 的基…

Java不定参数

先看两个简单的例子&#xff0c;来感受一下Java的不定长度参数 第一个例子&#xff1a; Java代码 public class VariArgs { public static void main(String[] args) { test(); test("aaa"); test("aaa", "bbb&q…

「mysql优化专题」主从复制面试宝典!面试官都没你懂得多!(11)

内容较多&#xff0c;可先收藏&#xff0c;目录如下&#xff1a; 一、什么是主从复制 二、主从复制的作用&#xff08;重点&#xff09; 三、主从复制的原理&#xff08;重中之重&#xff09; 四、三步轻松构建主从 五、必问面试题干货分析&#xff08;最最重要的点&#xff09…

为什么WordPress网站应尽量避免使用过多插件

前几天&#xff0c;我们在给一个客户优化其企业网站时&#xff0c;发现其网站使用了太多的WordPress插件。WP插件可以扩展网站的功能&#xff1b;然而如果使用不当&#xff0c;也会给网站带来一些负面的影响。在这篇文章中&#xff0c;WPChina.org就给大家介绍一下&#xff0c;…

OracleApps Dropship 流程

做的一个Dropship流程的实录(包括流程期间遇到问题的解决)What are the advantages of Drop Shipment Orders?These are the benefits: No inventory is required Reduced order fulfillment processing costs Reduced flow times Elimination of losses on non-sellable …

word取消下一页_word文档页码设置及文中小箭头清除办法

在很长一段时间里&#xff0c;朋友圈流传的这样一段话&#xff1a;世人慌慌张张&#xff0c;不过图碎银几两&#xff1b;可偏偏就是这几两碎银&#xff0c;能免饥荒&#xff0c;能定安康 &#xff0c;能解世人惆怅。。。问&#xff1a;word怎么从第二页开始加页码答&#xff1a…

一起写框架-Ioc内核容器的实现-对象的调用-属性注入容器的对象(十)

实现功能 需求&#xff1a;在类的成员属性使用Autowirde注解注入容器中的对象。 实现思路 要实现这个功能。我们首先要思考一个问题&#xff1a;类与类的关系是在调用的建立的&#xff0c;还是说在创建对象的时候就就将建立了&#xff1f; ---我实现的方案是&#xff0c;在在程…

2064: 分裂 - BZOJ

Description 背景&#xff1a; 和久必分&#xff0c;分久必和。。。 题目描述&#xff1a; 中国历史上上分分和和次数非常多。。通读中国历史的WJMZBMR表示毫无压力。 同时经常搞OI的他把这个变成了一个数学模型。 假设中国的国土总和是不变的。 每个国家都可以用他的国土面积代…

android h5使用缓存_Android SDK 的 H5 打通方案演进 | 数据采集

一、前言近年来&#xff0c;混合开发越来越流行&#xff0c;App 与 H5 的打通需求也越来越迫切。那什么是 App 与 H5 打通呢&#xff1f;所谓 “打通”&#xff0c;是指 H5 集成 JavaScript 数据采集 SDK 后&#xff0c;H5 触发的事件不直接同步给服务端&#xff0c;而是先发给…

简单人物画像_你真的理解用户画像吗?| 船说

“「设计师沙龙」是ARK下半年开始逐渐形成的传统&#xff0c;由ARKers自发组织&#xff0c;分为视觉和交互两类&#xff0c;每月各举办一次。大家围绕一个话题展开&#xff0c;聊聊行业最新案例和工作上的心得&#xff0c;帮助大家共同进步。ARKers表达的观点均为个人见解&…

emoji表情引发的JNI崩溃

今天突然接到客服那边的反馈说&#xff0c;有玩家反馈进游戏后不久就崩溃了&#xff0c;我先是怀疑网络问题&#xff0c;因为一连接聊天成功后就挂了。之后用logcat抓日志&#xff0c;发现挂在jni那里了 JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8…

8cm等于多少像素_「前端剑指offer第5期」物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么...

# 提问物理像素、逻辑像素、CSS像素、PPI、设备像素比是什么&#xff1f;# 回答物理像素代表屏幕上有多少个点&#xff0c;比如1080x2340表示屏幕一排包含1080个物理像素点。逻辑像素表示屏幕展示物体的视觉尺寸是多少。逻辑像素相同表示物体看起来或者打印出来大小一样&#x…