1 # 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
2 #
3 #
4 #
5 # 示例 1:
6 #
7 #
8 # 输入:l1 = [1,2,4], l2 = [1,3,4]
9 # 输出:[1,1,2,3,4,4]
10 #
11 #
12 # 示例 2:
13 #
14 #
15 # 输入:l1 = [], l2 = []
16 # 输出:[]
17 #
18 #
19 # 示例 3:
20 #
21 #
22 # 输入:l1 = [], l2 = [0]
23 # 输出:[0]
24 #
25 #
26 #
27 #
28 # 提示:
29 #
30 #
31 # 两个链表的节点数目范围是 [0, 50]
32 # -100 <= Node.val <= 100
33 # l1 和 l2 均按 非递减顺序 排列
34 #
35 # Related Topics 递归 链表 👍 1974 👎 0
36
37
38 # leetcode submit region begin(Prohibit modification and deletion)
39 # Definition for singly-linked list.
40 class ListNode:
41 def __init__(self, val=0, next=None):
42 self.val = val
43 self.next = next
44
45
46 class Solution:
47 def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
48 dummy = ListNode(-1)
49 pointer = dummy
50 while l1 and l2:
51 if l1.val <= l2.val:
52 pointer.next = l1
53 pointer, l1 = l1, l1.next
54 else:
55 pointer.next = l2
56 pointer, l2 = l2, l2.next
57 if l1:
58 pointer.next = l1
59 if l2:
60 pointer.next = l2
61 return dummy.next
62 # leetcode submit region end(Prohibit modification and deletion)