创建一个链表生成类

  1. class ListNode:
  2. def __init__(self, x):
  3. self.val = x
  4. self.next = None
  5. class LinkList:
  6. def __init__(self):
  7. self.head = None
  8. def initList(self, data):
  9. # 创建头结点
  10. self.head = ListNode(data[0])
  11. r = self.head
  12. p = self.head
  13. # 逐个为 data 内的数据创建结点, 建立链表
  14. for i in data[1:]:
  15. node = ListNode(i)
  16. p.next = node
  17. p = p.next
  18. return r
  19. def printlist(self, head):
  20. if head == None: return
  21. node = head
  22. while node != None:
  23. print(node.val, end=' ')
  24. node = node.next

链表合并函数

  1. def mergeTwoLists(A, B):
  2. if A is None:
  3. return B
  4. elif B is None:
  5. return A
  6. listMerge = None
  7. if A.val < B.val:
  8. listMerge = A
  9. listMerge.next = mergeTwoLists(A.next, B)
  10. else:
  11. listMerge = B
  12. listMerge.next = mergeTwoLists(B.next, A)
  13. 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)