将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
1 # Definition for singly-linked list. 2 # class ListNode: 3 # def __init__(self, val=0, next=None): 4 # self.val = val 5 # self.next = next 6 class Solution: 7 def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: 8 if l1 and l2: 9 if l1.val>l2.val: 10 l1,l2=l2,l1 11 l1.next=self.mergeTwoLists(l1.next,l2) 12 return l1 or l2
代码流程:
1.判断 l1 或 l2 中是否有一个节点为空,如果存在,那么我们只需要把不为空的节点接到链表后面即可
2.对 l1 和 l2 重新赋值,使得 l1 指向比较小的那个节点对象
3.修改 l1 的 next 属性为递归函数返回值
4.返回 l1,注意:如果 l1 和 l2 同时为 None,此时递归停止返回 None