您的位置:首页 > 编程语言 > Python开发

python中使用递归实现反转链表

2017-12-25 14:10 330 查看
   反转链表一般有两种实现方式,一种是循环,另外一种是递归,前几天做了一个作业,用到这东西了。

这里就做个记录,方便以后温习。

  递归的方法:

  

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: