我是靠谱客的博主 坚强咖啡豆,最近开发中收集的这篇文章主要介绍算法养成记:合并两个有序链表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

呆萌程序员

算法养成记

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上测试。当然答案不唯一,由于能力有限,实现方法不一定是最好的,也希望各位小伙伴一起来学习分享~

最后

以上就是坚强咖啡豆为你收集整理的算法养成记:合并两个有序链表的全部内容,希望文章能够帮你解决算法养成记:合并两个有序链表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部