leetcode python刷题记录(三) 21~30

21. 合并两个有序链表

leetcode python刷题记录(三) 21~30_第1张图片

class Solution:
    def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
        # 当变为空列表时结束递归,返回列表
        if not list1:
            return list2
        if not list2:
            return list1

        # 递归调用
        # 如何递归:我们判断 l1 和 l2 头结点哪个更小,然后较小结点的 next 指针指向其余结点的合并结果。(调用递归)
        if(list1.val <= list2.val):
            list1.next = self.mergeTwoLists(list1.next, list2)
            return list1
        else:
            list2.next = self.mergeTwoLists(list1, list2.next)
            return list2

你可能感兴趣的:(leetcode,leetcode,链表,算法)