两个非降序链表的合并
时间: 2023-07-11 07:12:51 浏览: 122
可以使用归并排序中的合并操作来实现两个非降序链表的合并。
具体实现步骤如下:
1. 定义一个新的链表,作为合并后的结果链表。
2. 分别遍历两个非降序链表,比较当前节点的值大小,将较小的值添加到结果链表中,并将该链表的指针后移一位。
3. 直到其中一个链表遍历完毕,将另一个链表剩余的节点添加到结果链表的末尾。
4. 返回结果链表即可。
以下是示例代码实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def mergeTwoLists(l1: ListNode, l2: ListNode) -> ListNode:
# 定义结果链表的头节点和当前节点
dummy = ListNode(0)
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
# 将剩余的节点添加到结果链表的末尾
cur.next = l1 if l1 else l2
return dummy.next
```
其中,ListNode 类定义了链表节点的结构,mergeTwoLists 函数实现了两个非降序链表的合并。
阅读全文