编写一串代码,将两个升序的头指针型单链表合并为降序的头指针型单链表
时间: 2023-05-26 16:05:55 浏览: 67
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def merge_lists(l1: ListNode, l2: ListNode) -> ListNode:
# 如果两个链表中一个为空,则直接返回另一个链表
if not l1:
return l2
if not l2:
return l1
# 定义一个新链表的哨兵节点
dummy = ListNode(-1)
cur = dummy
# 按照降序合并两个链表
while l1 and l2:
if l1.val > l2.val:
cur.next = l1
l1 = l1.next
else:
cur.next = l2
l2 = l2.next
cur = cur.next
# 如果l1或l2还有剩余节点,直接加到新链表的尾部
if l1:
cur.next = l1
elif l2:
cur.next = l2
# 返回新链表的哨兵节点的下一个节点,即新链表的头指针
return dummy.next
```