题目链接:https://leetcode-cn.com/problems/merge-two-sorted-lists/
难度:简单

描述:
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

提示:
链表节点数目范围:[0, 50]

题解

思路:
没什么好说的

  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, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
  8. dummy = ListNode()
  9. temp, p, q = dummy, list1, list2
  10. while p is not None and q is not None:
  11. if p.val < q.val:
  12. temp.next = p
  13. p = p.next
  14. else:
  15. temp.next = q
  16. q = q.next
  17. temp = temp.next
  18. temp.next = p if q is None else q
  19. return dummy.next
  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, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[ListNode]:
  8. if list1 is None:
  9. return list2
  10. if list2 is None:
  11. return list1
  12. if list1.val < list2.val:
  13. list1.next = self.mergeTwoLists(list1.next, list2)
  14. return list1
  15. else:
  16. list2.next = self.mergeTwoLists(list1, list2.next)
  17. return list2