Python 按顺序打印BST节点-仅打印第一个节点?

Python 按顺序打印BST节点-仅打印第一个节点?,python,binary-search-tree,Python,Binary Search Tree,我希望打印出[6,5,10] 相反,我只得到10: 下面是一个按顺序遍历的函数: def inOrder(node, order): if node is not None: inOrder(node.left, order) order.append(node.key) inOrder(node.right, order) 您可以编写一个确实返回列表的包装函数,并按如下方式使用它: def inOrder(root): orde

我希望打印出[6,5,10]

相反,我只得到10:


下面是一个按顺序遍历的函数:

def inOrder(node, order):
    if node is not None:
        inOrder(node.left, order)
        order.append(node.key)
        inOrder(node.right, order)
您可以编写一个确实返回列表的包装函数,并按如下方式使用它:

def inOrder(root):
    order = []
    inOrder(root, order)
    return order
def inOrder(node):
    if node is None:
        return []

    return inOrder(node.left) + [node.key] + inOrder(node.right)
编辑:或者您可以使用以下一个函数来完成此操作:

def inOrder(root):
    order = []
    inOrder(root, order)
    return order
def inOrder(node):
    if node is None:
        return []

    return inOrder(node.left) + [node.key] + inOrder(node.right)

解决方法是更新填充方法:

输出:

True
[10, 5, 6]

为什么需要列表?populate返回self.key,它在代码中定义为int。我尝试更新该populate方法,没有留下任何更改。输出为True,[]而不是[6,5,10],我添加了完整的代码。当我从顶部遍历时,输出为[10,5,6]。如果您想得到[6,5,10]作为输出,只需将数组反向返回为return self.arr[:-1]