class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: # 创建一个初始链表 curr = dummy = ListNode(0) # 遍历两个链表 while l1 and l2: # 如果l1.val < l2.val,curr后面就接l1节点,否则就接l2 if l1.val < l2.val: curr.next = l1 # l1向后移动 l1 = l1.next else: curr.next = l2 l2 = l2.next # curr向后移动 curr = curr.next # 当遍历l1和l2中有一个结束,则遍历结束,因为用的是and # 此时会出现l1和l2中一个遍历完了,一个没有遍历完 # 所以curr.next后面接还没有遍历完的链表 curr.next = l1 or l2 return dummy.next # 从头开始返回