描述:
将两个排序(升序)链表合并为一个新的升序排序链表

样例 1:
输入: list1 = null, list2 = 0->3->3->null
输出: 0->3->3->null
样例2:
输入:  list1 =  1->3->8->11->15->null, list2 = 2->null
输出: 1->2->3->8->11->15->null

解题思路:
先对特殊情况进行判断,再创建一个指针p用来接收两个链表的头节点中较小的那一个,然后将这个链表的next和另一个链表再次递归下去。

AC代码如下:

/**
* Definition of singly-linked-list:
* class ListNode {
* public:
* int val;
* ListNode *next;
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/ class Solution {
public:
/**
* @param l1: ListNode l1 is the head of the linked list
* @param l2: ListNode l2 is the head of the linked list
* @return: ListNode head of linked list
*/
ListNode * mergeTwoLists(ListNode * l1, ListNode * l2) {
// write your code here
if(!l1 && l2) return l2;
else if(l1 && !l2) return l1;
else if(!l1 && !l2) return NULL;
ListNode *p;
if(l1->val < l2->val){
p=l1;
p->next=mergeTwoLists(l1->next,l2);
}
else{
p=l2;
p->next=mergeTwoLists(l1,l2->next);
}
return p;
}
};

最新文章

  1. 004-For与Function进阶实战、Lazy的使用
  2. AngularJS中的Provider们:Service和Factory等的区别
  3. MySQL的简单查询语句
  4. css布局之三列布局
  5. WORD2003电子签名插件(支持手写、签章)
  6. hdu 2063 过山车(二分图最佳匹配)
  7. AIX 第4章 指令记录
  8. Add external tool in the Android Studio
  9. linux下查看jdk路径
  10. long double
  11. Linux中安装mongodb
  12. Docker 搭建Spark 依赖sequenceiq/spark:1.6镜像
  13. What makes for effective detection proposals? 论文解析
  14. virtualbox谨记:win7上只有4.3.x的版本支持ubuntu14.04.3虚拟机安装Oracle Rac,其他的版本3.x和5.0.2(至2015-08-30)均不可以
  15. Go第四篇之流程控制
  16. android开发:Android 中自定义属性(attr.xml,TypedArray)的使用
  17. java对文件的操作
  18. 未知高度的图片在div设置垂直居中
  19. android缓存具体解释
  20. TextWatcher

热门文章

  1. synchronized底层实现原理及锁优化
  2. 为什么redis 需要把所有数据放到内存中?
  3. jvm-learning-类加载器分类
  4. select poll和epoll
  5. java-設計模式-原型模式
  6. JRE、JDK、JVM 及 JIT 之间有什么不同?
  7. centos7 环境安装rabbitmq 集群
  8. 学习Squid(三)
  9. js技术之根据name获取input的值
  10. 使用jquery-webcam插件,实现人脸采集并转base64