完整代码:-
为链表的每个节点定义“Node”类。class Node:
def __init__(self,data):
self.data = data
self.next = None
“linkedlist”类的定义。class linkedlist:
def __init__(self):
self.head = None
“合并”功能的定义。
参数“ll1”和“ll2”是两个链表的头。def merge_lists(ll1, ll2):
if ll1 is None:
return ll2
if ll2 is None:
return ll1
if (ll1.data < ll2.data):
ll1.next = merge_lists(ll1.next, ll2)
return ll1
else:
ll2.next = merge_lists(ll2.next, ll1)
return ll2
在列表中输入。l1 = []
try:
l1 = list(map(int,input().strip().split()))
except EOFError:
pass
l2 = []
try:
l2 = list(map(int,input().strip().split()))
except EOFError:
pass
从输入列表值创建链表,即ll1和ll2。ll1 = linkedlist()
ll1.head = Node(l1[0])
itr1 = ll1.head
for i in range(1,n1):
temp = Node(l1[i])
itr1.next = temp
itr1 = itr1.next
ll2 = linkedlist()
ll2.head = Node(l2[0])
itr2 = ll2.head
for i in range(1,n2):
temp = Node(l2[i])
itr2.next = temp
itr2 = itr2.next
通过传递两个链表的头,使用merge函数合并两个排序的链表itr = merge(ll1.head,ll2.head)
“merge”函数返回迭代器本身,迭代器的值打印为:while itr != None:
print(itr.data,end=" ")
itr = itr.next
自定义输入和输出:-
输入
1个
4个
1 3 5 7年
4个
2 4 6 12个
输出
1 2 3 4 5 6 7 12