如何在Python 2.7中以递归方式正确打印链表?

时间:2015-03-29 23:18:24

标签: python-2.7 recursion linked-list

我一直试图以递归方式打印链表,并且输出中出现错误。

我编写了以下代码:

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语句或递归步骤中可能出现了问题。我应该做些什么?

1 个答案:

答案 0 :(得分:1)

您需要打印列表的头部,然后在尾部调用recursivePrint。您现在的问题是,您打印的recursivePrint的返回值为None

def recursivePrint(linkedList):
    if linkedList == None:
        return
    print linkedList['data']
    recursivePrint(linkedList['next'])