题目

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

分析

数据结构与算法的链表章节的典型实例,将两个有序链表合成一个,保持其有序的性质。

AC代码

/**
* 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; //合并后链表初始化为空
ListNode *rl = NULL; ListNode *p = l1, *q = l2;
if (l1->val <= l2->val)
{
rl = l1;
p = l1->next;
}
else{
rl = l2;
q = l2->next;
}
rl->next = NULL;
ListNode *head = rl; while (p && q)
{
if (p->val <= q->val)
{
rl->next = p;
p = p->next;
}
else{
rl->next = q;
q = q->next;
}//else
rl = rl ->next;
}//while while (p)
{
rl->next = p;
p = p->next;
rl = rl->next;
} while (q)
{
rl->next = q;
q = q->next;
rl = rl->next;
} return head;
}
};

GitHub测试程序源码

最新文章

  1. 艾伦 Visual Studio 批量自动化代码操作工具-VS插件发布
  2. Adding List Item Element At Runtime In Oracle Forms
  3. python_way ,day11 进程
  4. Sencha Touch 2.4 callParent() 用法
  5. Objective-C设计模式——原型Prototype(对象创建)
  6. C# 静态类和非静态类的区别
  7. 使用angularjs中ng-repeat的$even与$odd属性时的注意事项
  8. 用OO方式写键盘字母小游戏
  9. 一步一步学EF系列【6、IOC 之AutoFac】
  10. centos7源码编译安装Ansible详细部署
  11. [SDOI 2011]染色
  12. 用豆瓣镜像解决pip安装慢的问题
  13. Using RequireJS in AngularJS Applications
  14. .Net Core的Log方式:Serilog+Kibana
  15. RabbitMQ通过Exchange.headers属性代替routekey,x-match实现队列精准匹配
  16. Atitit 创业好处 Atitit 为什么我们要创业
  17. resful规范
  18. 我眼中的Linux系统和红帽RHCE认证
  19. shiro 会话管理
  20. 4.easyloader.js文件的作用

热门文章

  1. Vue项目搭建流程 以及 目录结构构建
  2. Django 开发blog未完待续
  3. RHEL 7.2 源码安装Python 3.6.2报错
  4. linux高负载下mysql数据库彻底优化
  5. VB.NET入门 ANDALSO 和OrElse 之于 AND,OR
  6. linux的top下buffer与cache的区别
  7. canvas基础绘制-一个小球的坠落、反弹
  8. Ajax深入理解
  9. 5款好用的mysql客户端
  10. iOS 音频视频制作