python 合并两个排序的链表(递归解法)

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:

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

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:
            sub_head = self.mergeTwoLists(l1.next, l2)
            l1.next = sub_head
            return l1
        else:
            sub_head = self.mergeTwoLists(l1, l2.next)
            l2.next = sub_head
            return l2
        return sub_head

你可能感兴趣的:(递归,算法,链表,python,数据结构)