# 合并有序链表
class ListNode:
def __init__(self, value=None):
self.value = value
self.next = None
def Creat_Link_Tail(lst):
head = ListNode(lst[0])
L = head
for i in range(1, len(lst)):
p = ListNode(lst[i])
L.next = p
L = p
return head
def merge(phead1, phead2):
if not phead1:
return phead2
if not phead2:
return phead1
if phead1.value < phead2.value:
pres = phead1
pres.next = merge(phead1.next, phead2)
else:
pres = phead2
pres.next = merge(phead1, phead2.next)
return pres
def print_l(head):
print(head.value, end=' ')
if head.next is not None:
print_l(head.next)
if __name__ == '__main__':
lst1 = [1,3,5,6]
lst2 = [0,2,5,7]
link1 = Creat_Link_Tail(lst1)
link2 = Creat_Link_Tail(lst2)
print_l(link1)
print()
print_l(link2)
print()
mergehead = merge(link1,link2)
print_l(mergehead)
python合并有序链表(递归)
最新推荐文章于 2022-11-26 20:23:11 发布