内容简介:原题地址:这道题的思路很简单,其实就是同时遍历两个链表,选择其中最小的一个节点,选了那个链表的元素,哪个链表就往前走一个,没有被选择的不动。在过程中,如果其中一个链表已经为空,那么就把另外一个链表的全部内容填充到结果链表里面。这是第一种解决方法,循环遍历。上面思路很直接,但是代码看起来比较复杂,事实上,只要是链表这种结构,我们都可以考虑递归的去解决。思路如下面的代码,用递归来遍历。首先考虑,其中一个链表为空的情况,很简单直接把另一个链表返回。然后,如果l1的第一个节点比l2的第一节点小,或者相等,那么,就l
原题地址: https://leetcode.com/problems/merge-two-sorted-lists/
要求
合并两个有序的链表,返回一个新链表。新的链表必须由前两个链表的节点组成。
例如:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
这道题的思路很简单,其实就是同时遍历两个链表,选择其中最小的一个节点,选了那个链表的元素,哪个链表就往前走一个,没有被选择的不动。在过程中,如果其中一个链表已经为空,那么就把另外一个链表的全部内容填充到结果链表里面。这是第一种解决方法,循环遍历。
上面思路很直接,但是代码看起来比较复杂,事实上,只要是链表这种结构,我们都可以考虑递归的去解决。思路如下面的代码,用递归来遍历。首先考虑,其中一个链表为空的情况,很简单直接把另一个链表返回。然后,如果l1的第一个节点比l2的第一节点小,或者相等,那么,就l1的第二个节点等于,现有l1的第二个节点和l2的合并结果,然后返回l1。反之亦然。
代码地址: https://github.com/tinyfool/leetcode/tree/master/src/p0021
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++数值算法(第二版)
William T.Vetterling、Brian P.Flannery、Saul A.Teukolsky / 胡健伟、赵志勇、薛运华 / 电子工业出版社 / 2005年01月 / 68.00
本书选材内容丰富,除了通常数值方法课程的内容外,还包含当代科学计算大量用到的专题,如求特殊函数值、随机数、排序、最优化、快速傅里叶变换、谱分析、小波变换、统计描述和数据建模、常微分方程和偏微分方程数值解、若干编码算法和任意精度的计算等。 本书科学性和实用性统一。每个专题中,不仅对每种算法给出了数学分析和比较,而且根据作者的经验对算法做出了评论和建议,并在此基础上给出了用C++语言编写的实用程......一起来看看 《C++数值算法(第二版)》 这本书的介绍吧!