我如何在 Python 2.7 中正确地递归打印链表?
How would I properly print a linked list recursively in Python 2.7?
我一直在尝试以递归方式打印链表,但输出中一直出现错误。
我编写了以下代码:
def recursivePrint(linkedList):
if linkedList == None:
return
print linkedList['data'], recursivePrint(linkedList['next'])
它的输出为:
2 7 1 3 10 None
None
None
None
None
None
我不知道我到底应该在这里做什么,因为这应该很容易做到。我还需要能够反向打印列表,我想我会做与我在第一个函数中所做的几乎相同的事情。
我将此编码为反向:
def reversePrint(linkedList):
if linkedList == None:
return
print reversePrint(linkedList['next']), linkedList['data']
并得到输出:
None
None 10
None 3
None 1
None 7
None 2
我认为 if 语句或递归步骤可能出了问题。我应该怎么做?
你需要打印列表的头部,然后在尾部调用recursivePrint
。您现在的问题是您正在打印 recursivePrint
的 return 值,即 None
.
def recursivePrint(linkedList):
if linkedList == None:
return
print linkedList['data']
recursivePrint(linkedList['next'])
我一直在尝试以递归方式打印链表,但输出中一直出现错误。
我编写了以下代码:
def recursivePrint(linkedList):
if linkedList == None:
return
print linkedList['data'], recursivePrint(linkedList['next'])
它的输出为:
2 7 1 3 10 None
None
None
None
None
None
我不知道我到底应该在这里做什么,因为这应该很容易做到。我还需要能够反向打印列表,我想我会做与我在第一个函数中所做的几乎相同的事情。
我将此编码为反向:
def reversePrint(linkedList):
if linkedList == None:
return
print reversePrint(linkedList['next']), linkedList['data']
并得到输出:
None
None 10
None 3
None 1
None 7
None 2
我认为 if 语句或递归步骤可能出了问题。我应该怎么做?
你需要打印列表的头部,然后在尾部调用recursivePrint
。您现在的问题是您正在打印 recursivePrint
的 return 值,即 None
.
def recursivePrint(linkedList):
if linkedList == None:
return
print linkedList['data']
recursivePrint(linkedList['next'])