专栏首页java工会算法养成记:合并两个有序链表

算法养成记:合并两个有序链表

呆萌程序员

算法养成记

LeetCode21

Merge Two Sorted Lists

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.

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

Example:

Input: 1->2->4, 1->3->4

Output: 1->1->2->3->4->4

在实际测试里

执行用时分别是:0ms,0ms

内存消耗分别是:38.5MB,38.8MB

如果是小量计算,递归的问题不大,但是如果是大量数据的计算,不太建议用递归:

1.递归由于是函数调用自身,而函数调用是有时间和空间的消耗的:每一次函数调用,都需要在内存栈中分配空间以保存参数、返回地址以及临时变量,而往栈中压入数据和弹出数据都需要时间。

2.递归中很多计算都是重复的,由于其本质是把一个问题分解成两个或者多个小问题,多个小问题存在相互重叠的部分,则存在重复计算。

3.调用栈可能会溢出,其实每一次函数调用会在内存栈中分配空间,而每个进程的栈的容量是有限的,当调用的层次太多时,就会超出栈的容量,从而导致栈溢出。

这一版文案您还觉得满意吗?

哪里不太对,但又说不上来。

数据结构和算法一直都是程序员面试重点。写好每一个方法,每一个接口,程序的效率也会越来越高。为了学习和巩固数据结构和算法,我们特别创作了《呆萌程序员--明明凯凯算法养成记》,每天更新一篇数据结构知识点或者刷一道LeetCode题目。算法都会在LeetCode上测试。当然答案不唯一,由于能力有限,实现方法不一定是最好的,也希望各位小伙伴一起来学习分享~

本文分享自微信公众号 - java工会(javagonghui),作者:除却巫山

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 关于CodeReview

    CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成本,同时促进团队内部知识共享,帮助更多人更好地理解系统。

    三哥
  • 万能 Java

    三哥
  • Spring工作原理

    内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、...

    三哥
  • 做一个不一样的程序员

    沈唁
  • 5G混合网络关键技术要点

    所有新技术,90%并非完全是新的,大量成熟技术的应用(产业对强可靠性要求的必然结果)。技术新人千万不要害怕,注重技术路径与底层技术的钻研。有礼有节,良好对策,能...

    用户7118337
  • 程序员抄袭代码现象普遍, 却能拿到年薪30万, 你怎么看?

    你们知道程序员最熟悉,最熟练,最常用的两个快捷键是哪两个吗?没错,估计你现在心中所想的就是:和,俗名为:复制和粘贴。

    一墨编程学习
  • 如何用无线键盘控制树莓派小车

    *本文作者:xutiejun,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

    FB客服
  • 这个机器人被沙特授予公民身份,还回怼了马斯克:人不犯我 我不犯人

    千平 发自 凹非寺 量子位 出品 | 公众号 QbitAI ? 索菲娅火了。 这人是谁?它不是人,或者说她不是一个人类。索菲娅是总部位于香港的Hanson Ro...

    量子位
  • 对比Kubernetes的Nodeport、Loadbalancer和Ingress,什么时候该用哪种

    最近,有人问我 NodePort,LoadBalancer 和 Ingress 之间的区别是什么。 它们是将外部流量引入群集的不同方式,并且实现方式不一样。 我...

    imroc
  • Javascript深拷贝

    var oOriginal = { memNum: 1, // number ...

    郑小超.

扫码关注云+社区

领取腾讯云代金券