刻意练习:LeetCode实战 -- Task07. 合并两个有序链表
背景
本篇图文是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. 合并两个有序链表相关推荐
- LeetCode实战:合并两个有序链表
题目英文: Merge two sorted linked lists and return it as a new list. The new list should be made by spli ...
- LeetCode实战:合并两个有序数组
题目英文 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. No ...
- 20190827:(leetcode习题)合并两个有序链表
合并两个有序链表 题目 大致思路 代码实现 题目 大致思路 本题的思路来讲,可以想见是和数组之类的类似,每次取出一个最小的值,取n次之后得到新链,最容易想到递归方法.每次调用函数时得到新的ListNo ...
- leetcode No.21 合并两个有序链表
题目 链接:https://leetcode-cn.com/problems/merge-two-sorted-lists 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的 ...
- leetcode算法题--合并两个有序链表
原题链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/ ListNode* mergeTwoLists(ListNode* l1, ...
- LeetCode实战:寻找两个有序数组的中位数
题目英文 There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of th ...
- LeetCode实战:合并K个排序链表
题目英文 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexi ...
- 刻意练习:LeetCode实战 -- Task12. 合并K个排序链表
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- 《LeetCode力扣练习》第21题 合并两个有序链表 Java
<LeetCode力扣练习>第21题 合并两个有序链表 Java 一.资源 题目: 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例 ...
最新文章
- 重磅:辽宁副省长获中国版诺贝尔奖 !2020未来科学大奖揭晓
- linux教程 nfs,[原创]linux视频教程之NFS
- cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析
- VS Code有哪些奇技淫巧?
- 采用HttpModules来重写URLs(实践篇)
- java.lang.NoClassDefFoundError:如何解决–第2部分
- 开工第一天,老板补发年终奖,一箱18元的冰棍
- 搜狐2019第一季度总收入4.31亿超预期 减亏超预期
- 【报告分享】2021年数字化浪潮在中国的发展和实践.pdf(附下载链接)
- 油漆面积 java_第八屆藍橋杯省賽 JavaA組 第十題 標題:油漆面積
- 学python语言有前途吗-学习python的前景怎么样?
- 关于rnn神经网络的loss函数的一些思考
- 关于一些初级ACM竞赛题目的分析和题解(一)。
- 电脑键盘部分按键失灵_华硕笔记本键盘有部分按键失灵 - 卡饭网
- python--模拟掷骰子游戏
- redis,ruby安装
- springboot上传图片到阿里云OSS并实现浏览器预览
- 智慧城市同城小程序V4_1.0.86后端+双前端
- js隐藏显示div页面方法
- else用法的一个小细节
热门文章
- IDEA新建springboot项目发生错误
- 统一建模语言——UML(第9-20课时)(cont.)
- 学Python培训有什么用
- 免费学习编程的10个好工具
- linux设置终端颜色256,如何设置我的Linux X终端以便Emacs可以访问256种颜色?
- 安装gym库_强化学习Gym库学习实践(一)
- 《代码敲不队》第八次团队作业:Alpha冲刺 第二天
- 深入研究ConcurrentHashMap 源码从7到8的变迁
- poj1330Nearest Common Ancestors 1470 Closest Common Ancestors(LCA算法)
- ormlite 多表联合查询