创建一个链表生成类
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class LinkList:
def __init__(self):
self.head = None
def initList(self, data):
# 创建头结点
self.head = ListNode(data[0])
r = self.head
p = self.head
# 逐个为 data 内的数据创建结点, 建立链表
for i in data[1:]:
node = ListNode(i)
p.next = node
p = p.next
return r
def printlist(self, head):
if head == None: return
node = head
while node != None:
print(node.val, end=' ')
node = node.next
链表合并函数
def mergeTwoLists(A, B):
if A is None:
return B
elif B is None:
return A
listMerge = None
if A.val < B.val:
listMerge = A
listMerge.next = mergeTwoLists(A.next, B)
else:
listMerge = B
listMerge.next = mergeTwoLists(B.next, A)
return listMerge
测试:
l=LinkList()
data1 = [1, 2, 3]
data2= [2, 4, 6]
l1=l.initList(data1)
l2=l.initList(data2)
ret = mergeTwoLists(l1, l2)
print(ret)