使用Python语言:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
时间: 2023-06-11 11:09:52 浏览: 101
可以使用递归的方式来解决这个问题,递归的思路是,每次比较两个链表的头结点,将较小的头结点作为合并后的链表的头节点,并将其余结点和另一个链表继续递归合并。
下面是示例代码:
```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
if l1.val <= l2.val:
l1.next = mergeTwoLists(l1.next, l2)
return l1
else:
l2.next = mergeTwoLists(l1, l2.next)
return l2
```
在这个代码中,我们首先判断传入的两个链表是否为空,如果其中一个为空,就直接返回另一个链表。然后比较两个链表的头结点的大小,将较小的头结点作为合并后的链表的头结点,并将其余结点和另一个链表继续递归合并。
阅读全文