反转链表一般有两种实现方式,一种是循环,另外一种是递归,前几天做了一个作业,用到这东西了。
这里就做个记录,方便以后温习。
递归的方法:
class Node: def __init__(self,init_data): self.data = init_data self.next = None def get_data(self): return self.data def get_next(self): return self.next def set_data(self,new_data): self.data = new_data def set_next(self,new_next): self.next = new_next lista = Node(99) listc = Node(49) listd = Node(39) liste = Node(29) listf = Node(9) lista.next = listc listc.next = listd listd.next = liste def recurse(mylist,newlist): if mylist is None: return; if mylist.next is None: newlist = mylist else: newlist = recurse(mylist.next,newlist) mylist.next.next = mylist mylist.next = None return newlist listg = None plist = recurse(lista,listg) def list_print(listd): while listd is not None: print listd.data listd = listd.next print "elist is:" list_print(liste) print "reverse list is:" list_print(plist)
运行结果:
elist is: 29 39 49 99 reverse list is: 29 39 49 99
作者:虚生 出处:https://www.cnblogs.com/dylancao/ 以音频和传感器算法为核心的智能可穿戴产品解决方案提供商 ,提供可穿戴智能软硬件解决方案的设计,开发和咨询服务。 勾搭热线:邮箱:1173496664@qq.com weixin:18019245820 市场技术对接群:347609188 |