LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)
2024-09-02 14:14:16
题目描述
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解题思路
首先找到新链表头节点,即两个链表头节点值较小的节点,然后以头节点所在链表为准,依次将另一个链表插入到对应位置中。
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(l1 == NULL) return l2;
if(l2 == NULL) return l1;
if(l1->val > l2->val)
return mergeTwoLists(l2, l1);
ListNode* head = l1;
while(l1->next && l2){
if(l1->next->val > l2->val){
ListNode* next = l2->next;
l2->next = l1->next;
l1->next = l2;
l2 = next;
}
l1 = l1->next;
}
if(l2) l1->next = l2;
return head;
}
};
最新文章
- 打开gvim发现菜单栏是乱码
- C/C++变量名与值的问题
- ios Coredata 的 rollback undo 等事物处理函数
- android asmack 注册 登陆 聊天 多人聊天室 文件传输
- Css compatibility
- 使用git ftp发布我个人的hexo博客内容
- 无锁算法CAS 概述
- PS学习笔记
- 普通SQL注入
- MySQLdb安装和使用2
- button 变成圆
- X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件
- jvm系列 (四) ---强、软、弱、虚引用
- Spring源码情操陶冶-AnnotationConfigBeanDefinitionParser注解配置解析器
- 关于单元测试的思考--Asp.Net Core单元测试最佳实践
- return *this和return this有什么区别?
- 解决Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
- linux 使用split分割大文件
- 总结我在huawei matebook D 2018版中安装archlinux的过程
- GridControl简单属性操作