Python 按顺序打印BST节点-仅打印第一个节点?
我希望打印出[6,5,10] 相反,我只得到10: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
下面是一个按顺序遍历的函数:
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]