有序单链表的合并实现
时间: 2024-10-08 19:10:48 浏览: 21
有序单链表的合并通常是通过递归或迭代的方式来完成的。这里是一个简单的Python示例,展示如何合并两个已排序的链表:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def merge_sorted_lists(l1, l2):
if not l1:
return l2
elif not l2:
return l1
else:
if l1.val < l2.val:
l1.next = merge_sorted_lists(l1.next, l2)
return l1
else:
l2.next = merge_sorted_lists(l1, l2.next)
return l2
# 示例
l1 = ListNode(1, ListNode(2, ListNode(4)))
l2 = ListNode(1, ListNode(3, ListNode(4)))
merged_list = merge_sorted_lists(l1, l2)
```
在这个例子中,我们创建了一个`ListNode`类表示链表节点,然后定义了`merge_sorted_lists`函数。这个函数会比较两个链表当前节点的值,将较小的那个节点的下一个元素作为新的当前节点,并递归地继续这个过程,直到其中一个链表为空。
阅读全文