# -*- coding: utf-8 -*-
"""
Created on Thu Mar 2 11:35:11 2017
@author: zzpp220
"""
class LinkList:
def __init__(self,val=None,link=None):
self.val=val
self.link=link
class MergeLink:
def mergeLink(self,lst1,lst2):
if lst1==None:##先给出递归到最细情况或者特殊情况式的返回值
return lst2
elif lst2==None:
return lst1
else:
Head_Total=None#在给出从最大的对象开始如何产生下一级的要递归的对象
if lst1.val <=lst2.val:
Head_Total=lst1
Head_Total.link=self.mergeLink(lst1.link,lst2)#z在本级对下一级对象应用递归,直到最细的一级满足最开始定义的情况,跳回上一级,并且返回递归的结果共上一层使用
else:
Head_Total=lst2
Head_Total.link=self.mergeLink(lst1,lst2.link)#对下一级对象应用递归,并且使用下一级递归返回的结果
return Head_Total#跳回本级之后,就要定义一般操作,用下一级返回值要做怎么的使用,作为一般情况下本次递归的返回值。
if __name__=='__main__':
solution=MergeLink()
l0=LinkList(7)
l1=LinkList(6,l0)
l2=LinkList(5,l1)
l3=LinkList(3,l2)
lst1=LinkList(1,l3)#1-->3-->5-->6-->7
r0=LinkList(8)
r1=LinkList(6,r0)
r2=LinkList(6,r1)
r3=LinkList(4,r2)
rst1=LinkList(2,r3)#2-->4-->6-->6-->7
solution.mergeLink(lst1,rst1)
print lst1.link.link.link.val
附件列表