[21]合并两个有序链表

 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)

 

posted @ 2021-10-21 17:57  小熊猫不是小浣熊  阅读(23)  评论(0)    收藏  举报