problem

MergeTwoSortedLists

一种方法是迭代,一种方法是递归;

code

/**
* 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 head(INT_MIN);//
ListNode* out = &head;
while(l1&&l2)//
{
if(l1->val < l2->val) { out->next = l1; l1 = l1->next;}
else {out->next = l2; l2 = l2->next; }
out = out->next;//
}
out->next = l1 ? l1 : l2;//
return head.next;//
}
};

将两个有序的链表合并为一个有序链表;

主要考察单向链表的基本用法;

头结点;

两个链表都有数值的时候才进行比较;

注意比较之后更新每个链表的头结点;

注意判断空链表时如何处理;

注意返回的是头结点的next;

参考

1.leetcode-MergeTwoSortedLists;

最新文章

  1. 看懂SqlServer查询计划【转】
  2. 可爱的Python_课后习题_CDay−2 完成核心功能
  3. 关于flume配置加载(二)
  4. SQL SERVER 2008 R2配置管理器出现“远程过程调用失败”【0x800706be】的解决办法
  5. mysql触发器查看
  6. javaweb学习总结七(XML语言作用、语法)
  7. hdu 4607 树的直径
  8. HTTP协议 流程图
  9. [HMLY]3.如何使用Xcode Targets管理开发和生产版本?
  10. MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准
  11. C++ 进制转换 十进制十六进制八进制二进制相互转换
  12. java在方法中获取request对象
  13. DTW的原理及matlab实现
  14. linux下如何安装mysql和redis
  15. scanf连续输入字符,中间不要忘记\n
  16. 在C语言结构体中添加成员函数
  17. a++ 与 ++a 的运算
  18. 虚拟机内存复用技术的比较(XEN系统)
  19. msf辅助模块的应用——20145301
  20. 一点二次插值、二点二次插值 ,matlab

热门文章

  1. windows工具打开命令
  2. 模块之 logging, shelve, sys 模块
  3. Vue + Element UI 实现权限管理系统(国际化实现)
  4. win10与centos7的双系统U盘安装(三:win10启动项的恢复)
  5. 安装Adobe Acrobat XI Pro
  6. HashMap与TreeMap按照key和value排序
  7. bzoj1692
  8. 四:(之四)基于已有镜像构建自己的Docker镜像
  9. 二. Python基础(2)--语法
  10. Qt简单项目--加法计算器(详细代码注释)