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
相关文章推荐
- 使用单链表反转的递归和非递归实现方式
- 反转链表(递归和非递归实现)
- 使用C/C++实现对字符串的反转(递归和非递归)
- 链表反转的实现(递归反转链表,非递归反转链表)
- 使用python实现递归版汉诺塔示例(汉诺塔递归算法)
- 使用tcl/expect实现对链表反转
- C递归实现单向链表的反转
- C++递归与非递归实现链表的反转
- 递归实现有序链表(不需要使用两个指针)
- python中使用递归实现koch曲线绘制
- 使用70行Python代码实现一个递归下降解析器的教程
- 带头节点链表的反转 循环和递归 C#实现
- 反转链表--递归和非递归实现
- 反转链表递归和非递归实现(面试题 16)
- C递归实现单向链表的反转
- 链表反转C实现(递归与循环)
- 使用递归和非递归方式反转单向链表
- 一些常用算法[数组全排列算法,单链表反转(递归实现),字符串反转,桶排序]
- java 使用头插法实现反转链表
- 【100题】反转链表(递归实现)