Leetcode打卡 | No.21 合并两个有序链表

No.21  合并两个有序链表

题目 :

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

示例 :

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

分析 :这题目很简单 ,而且前边关于链表关于排序都有过类似的题目 ,有遗忘的可以回头看看 记录帖 | Leetcode打卡目录(NO.1-20)


思路一 :利用链表已经有序 ,创建一个新链表 ,从头指针开始 ,将两个链表依次比较 ,新目标链表指向比较后较小的链表(记作A)的对应节点值 ,然后将该链表A后移一个节点重复操作 。直到有个链表已经移动到最后 ,此时将另一个链表接到目标链表后即可 ,小詹记得前边有一题特别类似 。具体代码实现如下 

Leetcode打卡 | No.21 合并两个有序链表

思路二 :除了上述思路 ,还可以利用递归思路 ,我们注意到链表指针指向后边的还是一个链表 ,可看作少一个节点的链表 。于是我们可以考虑反复调用该方法 ,只是将参数改成去除一个节点的链表和另一个没有变化的链表即可 ,具体代码如下 :

Leetcode打卡 | No.21 合并两个有序链表


而且提交表明 ,思路二的速度快很多 ,小伙伴们可以自行try一try哦 ~


上一篇:Python | 拥有选择权 ,才拥有概率 。(下)


下一篇:Leetcode打卡 | No.19 删除链表的倒数第N个节点