背景

本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务。本期训练营采用分类别练习的模式,即选择了五个知识点(数组、链表、字符串、树、贪心算法),每个知识点选择了 三个简单、两个中等、一个困难 等级的题目,共计三十道题,利用三十天的时间完成这组刻意练习。

本次任务的知识点:链表

链表(Linked List) 是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里除了存放本身数据(data fields)之外还存放其后继节点的指针(Pointer)。

使用链表结构可以克服数组需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。但是链表失去了数组随机读取的优点,同时链表由于增加了结点的指针域,空间开销比较大。

链表有很多种不同的类型:单向链表,双向链表以及循环链表。


题目

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

示例:

输入:1->2->4, 1->3->4

输出:1->1->2->3->4->4


实现

C# 语言

  • 执行结果:通过
  • 执行用时:108 ms, 在所有 C# 提交中击败了 83.80% 的用户
  • 内存消耗:25.9 MB, 在所有 C# 提交中击败了 5.85% 的用户
/*** Definition for singly-linked list.* public class ListNode {*     public int val;*     public ListNode next;*     public ListNode(int x) { val = x; }* }*/
public class Solution
{public ListNode MergeTwoLists(ListNode l1, ListNode l2){ListNode pHead = new ListNode(int.MaxValue);ListNode temp = pHead;while (l1 != null && l2 != null){if (l1.val < l2.val){temp.next = l1;l1 = l1.next;}else{temp.next = l2;l2 = l2.next;}temp = temp.next;}if (l1 != null)temp.next = l1;if (l2 != null)temp.next = l2;return pHead.next;}
}

Python 语言

  • 执行结果:通过
  • 执行用时:40 ms, 在所有 Python3 提交中击败了 68.12% 的用户
  • 内存消耗:13.4 MB, 在所有 Python3 提交中击败了 17.11% 的用户
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:pHead = ListNode(None)temp = pHeadwhile(l1 and l2):if (l1.val <= l2.val):temp.next = l1                l1 = l1.nextelse :temp.next = l2l2 = l2.nexttemp = temp.nextif l1 is not None:temp.next = l1 else :temp.next = l2return pHead.next

来源

  • https://leetcode-cn.com/problems/merge-two-sorted-lists/submissions/

往期活动

LSGO软件技术团队会定期开展提升编程技能的刻意练习活动,希望大家能够参与进来一起刻意练习,一起学习进步!

  • Python基础刻意练习活动即将开启,你参加吗?
  • Task01:变量、运算符与数据类型
  • Task02:条件与循环
  • Task03:列表与元组
  • Task04:字符串与序列
  • Task05:函数与Lambda表达式
  • Task06:字典与集合
  • Task07:文件与文件系统
  • Task08:异常处理
  • Task09:else 与 with 语句
  • Task10:类与对象
  • Task11:魔法方法
  • Task12:模块

我是 终身学习者“老马”,一个长期践行“结伴式学习”理念的 中年大叔

我崇尚分享,渴望成长,于2010年创立了“LSGO软件技术团队”,并加入了国内著名的开源组织“Datawhale”,也是“Dre@mtech”、“智能机器人研究中心”和“大数据与哲学社会科学实验室”的一员。

愿我们一起学习,一起进步,相互陪伴,共同成长。

后台回复「搜搜搜」,随机获取电子资源!
欢迎关注,请扫描二维码:

刻意练习:LeetCode实战 -- Task07. 合并两个有序链表相关推荐

  1. LeetCode实战:合并两个有序链表

    题目英文: Merge two sorted linked lists and return it as a new list. The new list should be made by spli ...

  2. LeetCode实战:合并两个有序数组

    题目英文 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. No ...

  3. 20190827:(leetcode习题)合并两个有序链表

    合并两个有序链表 题目 大致思路 代码实现 题目 大致思路 本题的思路来讲,可以想见是和数组之类的类似,每次取出一个最小的值,取n次之后得到新链,最容易想到递归方法.每次调用函数时得到新的ListNo ...

  4. leetcode No.21 合并两个有序链表

    题目 链接:https://leetcode-cn.com/problems/merge-two-sorted-lists 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的 ...

  5. leetcode算法题--合并两个有序链表

    原题链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/ ListNode* mergeTwoLists(ListNode* l1, ...

  6. LeetCode实战:寻找两个有序数组的中位数

    题目英文 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...

  7. LeetCode实战:合并K个排序链表

    题目英文 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexi ...

  8. 刻意练习:LeetCode实战 -- Task12. 合并K个排序链表

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  9. 《LeetCode力扣练习》第21题 合并两个有序链表 Java

    <LeetCode力扣练习>第21题 合并两个有序链表 Java 一.资源 题目: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 ...

最新文章

  1. 重磅:辽宁副省长获中国版诺贝尔奖 !2020未来科学大奖揭晓
  2. linux教程 nfs,[原创]linux视频教程之NFS
  3. cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析
  4. VS Code有哪些奇技淫巧?
  5. 采用HttpModules来重写URLs(实践篇)
  6. java.lang.NoClassDefFoundError:如何解决–第2部分
  7. 开工第一天,老板补发年终奖,一箱18元的冰棍
  8. 搜狐2019第一季度总收入4.31亿超预期 减亏超预期
  9. 【报告分享】2021年数字化浪潮在中国的发展和实践.pdf(附下载链接)
  10. 油漆面积 java_第八屆藍橋杯省賽 JavaA組 第十題 標題:油漆面積
  11. 学python语言有前途吗-学习python的前景怎么样?
  12. 关于rnn神经网络的loss函数的一些思考
  13. 关于一些初级ACM竞赛题目的分析和题解(一)。
  14. 电脑键盘部分按键失灵_华硕笔记本键盘有部分按键失灵 - 卡饭网
  15. python--模拟掷骰子游戏
  16. redis,ruby安装
  17. springboot上传图片到阿里云OSS并实现浏览器预览
  18. 智慧城市同城小程序V4_1.0.86后端+双前端
  19. js隐藏显示div页面方法
  20. else用法的一个小细节

热门文章

  1. IDEA新建springboot项目发生错误
  2. 统一建模语言——UML(第9-20课时)(cont.)
  3. 学Python培训有什么用
  4. 免费学习编程的10个好工具
  5. linux设置终端颜色256,如何设置我的Linux X终端以便Emacs可以访问256种颜色?
  6. 安装gym库_强化学习Gym库学习实践(一)
  7. 《代码敲不队》第八次团队作业:Alpha冲刺 第二天
  8. 深入研究ConcurrentHashMap 源码从7到8的变迁
  9. poj1330Nearest Common Ancestors 1470 Closest Common Ancestors(LCA算法)
  10. ormlite 多表联合查询