【问题标题】:Return Inorder Traversal list返回中序遍历列表
【发布时间】:2018-04-25 10:51:38
【问题描述】:

我正在尝试从中序遍历返回列表,下面是我的代码。如果我的输入是 [1,2,3] 并且输出应该是 [3,1,2],但我没有返回值。你能建议我的代码有什么问题吗?谢谢。

def inorderTraversal(currentNode,output=None):

    if output==None:
        output=[]
    if currentNode.left:
        return inorderTraversal(currentNode.left,output)

    return output.append(currentNode.data)

    if currentNode.right:
        return inorderTraversal(currentNode.right,output)

【问题讨论】:

  • 顺便说一句,if currentNode.right: 永远不会被执行,因为它遵循无条件的return 语句。

标签: python data-structures binary-tree inorder


【解决方案1】:

问题出在这一行:

return output.append(currentNode.data)

您正在返回 append 的值,但那是 Noneappend 更改列表,但不返回列表的新值。改为这样做。

output.append(currentNode.data)
return output

【讨论】:

    猜你喜欢
    • 2018-08-10
    • 2013-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 1970-01-01
    相关资源
    最近更新 更多