# -*- 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=linkclass 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