我如何在 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'])