我使用本书中描述的二叉树 解决算法和数据结构问题
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)
有任何想法吗?