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 均按 非递减顺序 排列

cpp 复制代码
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
	 if(list1==nullptr){
	     return list2;
	 }
	 if(list2==nullptr){
	     return list1;
	 }
	 ListNode* c = nullptr;
	 if(list1->val > list2->val){
	     c = list2;
	     list2 = list2->next;
	 }
	 else{
	     c = list1;
	     list1 = list1->next;
	 }
	 ListNode* d = c;
	 while(list1!=nullptr&&list2!=nullptr){
	     if(list1->val > list2->val){
	         d->next = list2;
	         list2 = list2->next;
	         d = d->next;
	     }
	     else{
	         d->next = list1;
	         list1 = list1->next;
	         d = d->next;
	     }
	 }
	 if(list1!=nullptr){
	     d->next = list1; 
	 }
	 if(list2!=nullptr){
	     d->next = list2; 
	 }
	 return c;
}
相关推荐
倒头就睡的小比特5 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼5 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
m0_547486665 天前
《数据结构教程》全套 PPT课件2026
数据结构
旖旎夜光5 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark5 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her15 天前
并查集-听课笔记
笔记·算法·并查集
码流子5 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven5 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark5 天前
从算法设计模式看编程思维的抽象能力4
算法