c创建单链表并实现链表的合并
时间: 2023-05-28 20:05:34 浏览: 61
单链表的定义:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
```
链表的合并:
```python
def merge_linked_lists(head1, head2):
"""
合并两个有序链表
:param head1: 第一个链表的头节点
:param head2: 第二个链表的头节点
:return: 合并后的链表的头节点
"""
if not head1:
return head2
if not head2:
return head1
if head1.data < head2.data:
head1.next = merge_linked_lists(head1.next, head2)
return head1
else:
head2.next = merge_linked_lists(head1, head2.next)
return head2
```
示例:
```python
# 创建链表1:1 -> 3 -> 5 -> 7 -> 9
head1 = Node(1)
node1 = Node(3)
node2 = Node(5)
node3 = Node(7)
node4 = Node(9)
head1.next = node1
node1.next = node2
node2.next = node3
node3.next = node4
# 创建链表2:2 -> 4 -> 6 -> 8 -> 10
head2 = Node(2)
node5 = Node(4)
node6 = Node(6)
node7 = Node(8)
node8 = Node(10)
head2.next = node5
node5.next = node6
node6.next = node7
node7.next = node8
# 合并链表
head = merge_linked_lists(head1, head2)
# 打印合并后的链表:1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 -> 10
while head:
print(head.data, end=' ')
head = head.next
```