小编Dam*_*amo的帖子

python从递归方法返回一个列表

我使用本书中描述的二叉树 解决算法和数据结构问题

class BinaryTree:
    def __init__(self,rootObj):
        self.key = rootObj
        self.leftChild = None
        self.rightChild = None
Run Code Online (Sandbox Code Playgroud)

已经存在如下定义的预序遍历方法.

def preorder(tree):
    if tree:
        print(tree.self.key)
        preorder(tree.getLeftChild())
        preorder(tree.getRightChild())
Run Code Online (Sandbox Code Playgroud)

我只想添加访问的节点列表的返回值.所以我可以做点什么

for i in preorder(tree):
    etc...
Run Code Online (Sandbox Code Playgroud)

我无法从递归方法返回列表.一旦它到达'返回',我就尝试使用变量,递归就会停止

return [tree.self.key] + preorder()
Run Code Online (Sandbox Code Playgroud)

要么

yield ...
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

python recursion binary-tree preorder

3
推荐指数
1
解决办法
531
查看次数

标签 统计

binary-tree ×1

preorder ×1

python ×1

recursion ×1