我有一个递归方法,用于遍历红黑树,并存储各种节点信息(在 list 中storage
)。
def _walk (self, storage, func, starting_node) :
if starting_node is not self._nil :
self._walk(storage, func, starting_node.left)
storage.append(func(starting_node))
self._walk(storage, func, starting_node.right)
但是,我想重新实现这个方法,以便它构建一个生成器(据我了解,这应该可以节省时间和内存)。这样做的“最佳”方式是什么?