# 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
#
#
#
# 示例 1:
#
#
# 输入:l1 = [1,2,4], l2 = [1,3,4]
# 输出:[1,1,2,3,4,4]
#
#
# 示例 2:
#
#
# 输入:l1 = [], l2 = []
# 输出:[]
#
#
# 示例 3:
#
#
# 输入:l1 = [], l2 = [0]
# 输出:[0]
#
#
#
#
# 提示:
#
#
# 两个链表的节点数目范围是 [0, 50]
# -100 <= Node.val <= 100
# l1 和 l2 均按 非递减顺序 排列
#
# Related Topics 递归 链表
# 👍 1469 👎 0
# leetcode submit region begin(Prohibit modification and deletion)
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def mergeTwoLists(self, l1, l2):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
dummyHead = ListNode(0)
point = dummyHead
while l1 or l2:
if (l1 and l2 and l1.val <= l2.val) or (not l2):
point.next = ListNode(l1.val)
l1 = l1.next
else:
point.next = ListNode(l2.val)
l2 = l2.next
point = point.next
return dummyHead.next
# leetcode submit region end(Prohibit modification and deletion)