【发布时间】:2018-07-11 17:33:09
【问题描述】:
我正在学习 Python 中的数据结构,我遇到了我不明白的 code。 我有一个节点类
class Node():
def __init__(self, data=None, next=None):
self.data = data
self.next = next
和链表类
class LinkedList():
def __init__(self):
self.head = Node()
...
...
def reversePrint(self, node=None):
if node == None:
node = self.head
if node.next:
self.reversePrint(node.next)
print(node.data)
append 和 delete 和 find 方法运行良好
但我似乎无法理解这种方法reverse_print 如何以相反的顺序呈现链表节点我希望只打印最后一个节点数据而不是以相反的顺序打印整个链表节点。
这是我的code
【问题讨论】:
-
它为下一个节点调用
reversePrint,然后打印自己的数据。所以它向前递归,并打印自己的数据last。其他一切都只是理解递归。 -
@khelwood 我的理解是
reversePrint将被调用而无需任何打印,直到它因为 if 语句而命中最后一个元素,所以print(node.data)如何以它应该调用的相反顺序调用整个列表只有最后一个元素值我无法得到它
标签: python python-3.x recursion linked-list