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;
}
相关推荐
CoovallyAIHub3 小时前
181小时视频丢给GPT-5,准确率只有15%——南大联合NVIDIA等五校发布多模态终身理解数据集
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
CVPR 2026 | GS-CLIP:3D几何先验+双流视觉融合,零样本工业缺陷检测新SOTA,四大3D工业数据集全面领先!
深度学习·算法·计算机视觉
xlp666hub3 小时前
Leetcode 第三题:用C++解决最长连续序列
c++·leetcode
有意义5 小时前
深度拆解分割等和子集:一维DP数组与倒序遍历的本质
前端·算法·面试
xlp666hub7 小时前
Leetcode第二题:用 C++ 解决字母异位词分组
c++·leetcode
用户726876103377 小时前
解放双手的健身助手:基于 Rokid AR 眼镜的运动计时应用
算法
Wect7 小时前
LeetCode 17. 电话号码的字母组合:回溯算法入门实战
前端·算法·typescript
xlp666hub1 天前
Leetcode第一题:用C++解决两数之和问题
c++·leetcode
ZhengEnCi1 天前
08c. 检索算法与策略-混合检索
后端·python·算法
程序员小崔日记1 天前
大三备战考研 + 找实习:我整理了 20 道必会的时间复杂度题(建议收藏)
算法·408·计算机考研