请编写一个将两个递增的链表合成一个递增链表的函数
时间: 2023-08-04 18:33:30 浏览: 44
好的,以下是一个实现的示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def mergeTwoLists(l1: ListNode, l2: ListNode) -> ListNode:
# 如果其中一个链表为空,则返回另一个链表
if not l1:
return l2
if not l2:
return l1
# 创建一个哑结点,用于最后返回合并后的链表
dummy = ListNode(0)
tail = dummy
# 遍历两个链表,将值较小的节点加入到新链表中,并将指针向后移动
while l1 and l2:
if l1.val < l2.val:
tail.next = l1
l1 = l1.next
else:
tail.next = l2
l2 = l2.next
tail = tail.next
# 将剩余的节点加入到新链表中
if l1:
tail.next = l1
if l2:
tail.next = l2
# 返回合并后的链表(注意,哑结点的 next 才是真正的链表头)
return dummy.next
```
这个函数的时间复杂度为 $O(m+n)$,其中 $m$ 和 $n$ 分别是两个链表的长度。