题目描述

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

输入: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;
}
};

最新文章

  1. 打开gvim发现菜单栏是乱码
  2. C/C++变量名与值的问题
  3. ios Coredata 的 rollback undo 等事物处理函数
  4. android asmack 注册 登陆 聊天 多人聊天室 文件传输
  5. Css compatibility
  6. 使用git ftp发布我个人的hexo博客内容
  7. 无锁算法CAS 概述
  8. PS学习笔记
  9. 普通SQL注入
  10. MySQLdb安装和使用2
  11. button 变成圆
  12. X-003 FriendlyARM tiny4412 uboot移植之添加相应目录文件
  13. jvm系列 (四) ---强、软、弱、虚引用
  14. Spring源码情操陶冶-AnnotationConfigBeanDefinitionParser注解配置解析器
  15. 关于单元测试的思考--Asp.Net Core单元测试最佳实践
  16. return *this和return this有什么区别?
  17. 解决Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
  18. linux 使用split分割大文件
  19. 总结我在huawei matebook D 2018版中安装archlinux的过程
  20. GridControl简单属性操作

热门文章

  1. js下载blob的形式
  2. Java ArrayList常用接口介绍及示例
  3. OGG学习笔记03
  4. JavaMaven【一、概述&环境搭建】
  5. Shell脚本——for,while,until循环
  6. Python—selenium模块(浏览器自动化工具)
  7. 语义分割之车道线检测Lanenet(tensorflow版)
  8. javascript代码实用方法实现
  9. HttpRunner完整笔记(从搭建到应用)
  10. ingress部署