0
点赞
收藏
分享

微信扫一扫

LC: 剑指 Offer 25. 合并两个排序的链表

程序员漫画编程 2022-04-23 阅读 41
python链表

题目:

剑指 Offer 25. 合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
链接:剑指 Offer 25. 合并两个排序的链表

注意:本题与主站 21 题相同:https://leetcode-cn.com/problems/merge-two-sorted-lists/

示例:

限制:0 <= 链表长度 <= 1000

思路:

采用递归方法,终止条件为任意一条链表为空时,递归内容为比较两个链表当前节点值的大小,小的一条则继续将该节点的下一个节点与之比较。

代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

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

时间复杂度O(M+n),空间复杂度O(m+n).

举报

相关推荐

0 条评论