原题链接:21. 合并两个有序链表
文章图片
solution: 和归并排序的思想差不多,就是从数组换成了链表
/**
* 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* list1, ListNode* list2) {
ListNode *dummy = new ListNode(0);
//创建虚拟头节点
ListNode *cur = dummy;
//创建cur指针遍历
while(list1 != nullptr && list2 != nullptr){
if(list1->val < list2->val){
cur->next = list1;
cur = cur->next;
list1 = list1->next;
}
else{
cur->next = list2;
cur = cur->next;
list2 = list2->next;
}
}
if(list1 != nullptr){//如果List1没有遍历完,就只想List1
cur->next = list1;
}
else cur->next = list2;
return dummy->next;
}
};
【Leetcode|21. 合并两个有序链表】
推荐阅读
- c语言|数据结构3--深入了解单向链表的实现
- LeetCode编程题解法汇总|力扣解法汇总661- 图片平滑器
- #|时序预测 | MATLAB实现时间序列回归之似然检验
- #|时序预测 | MATLAB实现时间序列回归之测试检验
- #|时序预测 | MATLAB实现时间序列回归之Bootstrapped测试
- Python|Python绘制概率曲线一
- 自动化测试|【Appium实战】如何使用mumu模拟器模拟安卓手机
- leetcode|Leetcode二分查找12:1351. 统计有序矩阵中的负数
- 哈希|Leetcode二分查找11:1346. 检查整数及其两倍数是否存在