21. 合并两个有序链表 (Python 实现)

x33g5p2x  于2022-06-29 转载在 Python  
字(0.6k)|赞(0)|评价(0)|浏览(534)

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

示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

输入:l1 = [], l2 = []
输出:[]

示例 3:

输入:l1 = [], l2 = [0]
输出:[0]

code:

  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 not list1 :
  9. return list2
  10. elif not list2:
  11. return list1
  12. res = ListNode()
  13. ans = res
  14. while list1 != None and list2 != None:
  15. if list1.val <= list2.val:
  16. ans.next = list1
  17. list1 = list1.next
  18. else:
  19. ans.next = list2
  20. list2 = list2.next
  21. ans = ans.next
  22. if list1 == None:
  23. ans.next = list2
  24. else:
  25. ans.next = list1
  26. return res.next

相关文章