LeetCode - 021 - 合并两个有序链表(merge-two-sorted-lists)

栏目: IT技术 · 发布时间: 5年前

内容简介:LeetCode - 021 - 合并两个有序链表(merge-two-sorted-lists)

Create by jsliang on 2019-06-05 08:37:00
Recently revised in 2019-06-05 17:31:37

一 目录

不折腾的前端,和咸鱼有什么区别

| 目录 | | --- | | 一 目录 | | 二 前言 | | 三 解题 | |  3.1 官方题解 | |  3.2 解题代码 | |  3.3 执行测试 | |  3.4 LeetCode Submit | |  3.5 知识补充 | |  3.6 解题思路 | | 四 总结 |

二 前言

  • 难度:简单

  • 涉及知识:链表

  • 题目地址:https://leetcode-cn.com/problems/merge-two-sorted-lists/

  • 题目内容

  1. 将两个有序链表合并为一个新的有序链表并返回。

  2. 新链表是通过拼接给定的两个链表的所有节点组成的。

  3. 示例:

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

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

三 解题

3.1 官方题解

https://leetcode-cn.com/problems/merge-two-sorted-lists/solution/he-bing-liang-ge-you-xu-lian-biao-by-leetcode/

解题千千万,官方独一家,上面是官方使用 Java 进行的题解。

小伙伴可以先自己在本地尝试解题,再看看官方解题,最后再回来看看 jsliang 讲解下使用 JavaScript 的解题思路。

3.2 解题代码

  1. var mergeTwoLists = function (l1, l2) {

  2. var mergedHead = {

  3. val: -1,

  4. next: null

  5. },

  6. crt = mergedHead;

  7. while (l1 && l2) {

  8. if (l1.val > l2.val) {

  9. crt.next = l2;

  10. l2 = l2.next;

  11. } else {

  12. crt.next = l1;

  13. l1 = l1.next;

  14. }

  15. crt = crt.next;

  16. }

  17. crt.next = l1 || l2;

  18. return mergedHead.next;

  19. };

3.3 执行测试

  • 参数 1

  1. l1 = {

  2. val: 1,

  3. next: {

  4. val: 2,

  5. next: {

  6. val: 4,

  7. next: null

  8. }

  9. }

  10. }

  • 参数 2

  1. l2 = {

  2. val: 1,

  3. next: {

  4. val: 3,

  5. next: {

  6. val: 5,

  7. next: null

  8. }

  9. }

  10. }

  • 返回值

  1. {

  2. val: 1,

  3. next: {

  4. val: 1,

  5. next: {

  6. val: 2,

  7. next: {

  8. val: 3,

  9. next: {

  10. val: 4,

  11. next: {

  12. val:5,

  13. next: null,

  14. }

  15. }

  16. }

  17. }

  18. }

  19. }

3.4 LeetCode Submit

  1. Accepted

  2. 208/208 cases passed (84 ms)

  3. Your runtime beats 98.22 % of javascript submissions

  4. Your memory usage beats 87.2 % of javascript submissions (35 MB)

3.5 知识补充

在这道题的解题知识中,存在一个知识点:链表。

然后因为 jsliang 跟小伙伴们一样,也是 算法与数据结构 的菜鸟,所以网上找了篇文章:

js实现链表: https://www.cnblogs.com/EganZhang/p/6594830.html

jsliang 碰到这种结构的时候,也是挠头抓耳,然后百度找到这篇文章,基本的结构看懂了,所以在这推荐给小伙伴们。

当然,jsliang 立马下单了一本书 《学习 JavaScript 数据结构与算法》,有没用不知道,先买了再说,后面 jsliang 会补上相关的知识点,小伙伴们先看下上面大佬写的文章咯~

3.6 解题思路

LeetCode - 021 - 合并两个有序链表(merge-two-sorted-lists)

四 总结

这样,我们就完成了 21 题的题解,感觉理解出来的话,其实是挺容易实现的。

如果小伙伴们还是有点懵,最好多打印几个 console.log,就清楚它是怎么运行的了!


jsliang 广告推送:
也许小伙伴想了解下云服务器
或者小伙伴想买一台云服务器
或者小伙伴需要续费云服务器
欢迎点击 云服务器推广 查看!

LeetCode - 021 - 合并两个有序链表(merge-two-sorted-lists)
jsliang 的文档库 由 梁峻荣 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
基于https://github.com/LiangJunrong/document-library上的作品创作。
本许可协议授权之外的使用权限可以从 https://creativecommons.org/licenses/by-nc-sa/2.5/cn/ 处获得。


以上所述就是小编给大家介绍的《LeetCode - 021 - 合并两个有序链表(merge-two-sorted-lists)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Unity 3D游戏开发(第2版)

Unity 3D游戏开发(第2版)

宣雨松 / 人民邮电出版社 / 2018-9 / 89.00元

Unity 是一款市场占有率非常高的商业游戏引擎,横跨25 个主流游戏平台。本书基于Unity 2018,结合2D 游戏开发和3D 游戏开发的案例,详细介绍了它的方方面面,内容涉及编辑器、游戏脚本、UGUI 游戏界面、动画系统、持久化数据、静态对象、多媒体、资源加载与优化、自动化与打包等。 本书适合初学者或者有一定基础的开发者阅读。一起来看看 《Unity 3D游戏开发(第2版)》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具