合并两个有序链表代码
时间: 2024-10-24 21:16:11 浏览: 17
合并两个有序链表是一个常见的数据结构操作,通常会利用递归或者迭代的方式来解决。这里提供一个简单的迭代方法的Python示例:
```python
# 定义链表节点
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def mergeTwoSortedLists(l1, l2):
# 创建一个新的头节点
dummy_head = ListNode(0)
current = dummy_head
while l1 and l2:
# 如果l1的值小于l2,将l1的节点链接到current后面
if l1.val < l2.val:
current.next = l1
l1 = l1.next
# 否则,将l2的节点链接到current后面
else:
current.next = l2
l2 = l2.next
# 移动current指针
current = current.next
# 将剩余未处理的链表连接起来(如果有)
if l1 is not None:
current.next = l1
elif l2 is not None:
current.next = l2
return dummy_head.next
```
这个函数接受两个已经排序好的链表作为输入,返回合并后的有序链表。在迭代过程中,我们不断比较两个链表当前节点的值,选择较小的一个添加到结果链表,并移动相应的指针。
阅读全文