0
点赞
收藏
分享

微信扫一扫

Python链表+递归【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——21. 合并两个有序链表


Python链表+递归【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——21. 合并两个有序链表_链表


????????????????????????
????Hello,大家好我是Dream,欢迎大家来到刷题乐园????????????

????​​游园须知:这片乐园从不缺乏天才,努力才是你的最终入场券!????????????​

????​​导游主要使用Python语言,同时欢迎其他语言的小伙伴进来玩耍​​☀️☀️☀️
????​​游园过程中,如果发现有错误的话,欢迎大家评论区及时斧正❤️❤️❤️​

????​​最后,祝大家游园愉快,一起加油进步????????????​



????????????游园路线图:


  • ​​????乐园描述​​
  • ​​????游园准备​​
  • ​​????开始游玩​​
  • ​​????游玩总结​​
  • ​​????????????最后的福利​​


????乐园描述

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

Python链表+递归【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——21. 合并两个有序链表_递归_02

示例 1:


输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
示例 2:

输入:l1 = [], l2 = []
输出:[]
示例 3:

输入:l1 = [], l2 = [0]
输出:[0]


提示:

两个链表的节点数目范围是 [0, 50]
-100 <= Node.val <= 100
l1 和 l2 均按 非递减顺序 排列

????游园准备



前言
递归解法总是给人一种“只可意会不可言传”的感觉,代码一看就懂,自己动手一写就呆住了,很难受。究其原因,一是我们练习不够,二是理解不够。



什么是递归?
递归的例子在平时生活中很容易见到,比如:
Python链表+递归【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——21. 合并两个有序链表_python_03
什么是递归呢?函数在运行时调用自己,这个函数就叫递归函数,调用的过程叫做递归。
比如定义函数 f(x)=x+f(x-1)f(x)=x+f(x−1):



def f(x):
return x + f(x-1)

递归解法:

根据以上规律考虑本题目:

终止条件:当两个链表都为空时,表示我们对链表已合并完成。
如何递归:我们判断 l1 和 l2 头结点哪个更小,然后较小结点的 next 指针指向其余结点的合并结果。(调用递归)

????开始游玩

# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
if not l1: return l2 # 终止条件,直到两个链表都空
if not l2: return l1
if l1.val <= l2.val: # 递归调用
l1.next = self.mergeTwoLists(l1.next,l2)
return l1
else:
l2.next = self.mergeTwoLists(l1,l2.next)
return l2

Python链表+递归【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——21. 合并两个有序链表_递归_04

给出一个递归算法,其时间复杂度通常是递归调用的数量(记作 R) 和计算的时间复杂度的乘积(表示为O(s)) 的乘积: R*O(s)

????游玩总结

The stage extends as far as the heart goes~加油!❤️❤️❤️


​**????今天是我打卡的第九天,希望每天都能见到最棒的你????**​


????????????最后的福利

????????????最后一点小福利带给大家:如果想快速上手python的小伙伴们,这个详细整理PPT可以迅速帮助大家打牢python基础,需要的小伙伴们可以下载一下 ​​Python入门基础教程全套+小白速成+学不会来找我!​​ ????????????

还有自制表白神器,需要自取:

​​Python表白神器,源码+解析+各种完美配置+浪漫新颖​​ ????????????

Python链表+递归【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——21. 合并两个有序链表_python_05

???????????? 好啦,这就是今天要分享给大家的全部内容了

❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~Python链表+递归【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——21. 合并两个有序链表_原力计划_06



举报

相关推荐

0 条评论