python - 结合递归和收益进行树遍历
问题描述
我正在尝试结合递归和产量来按顺序遍历一棵树
这就是我目前所拥有的。但是,当我尝试遍历树时,它似乎只遍历根节点
class Tree:
...
def post_order(self, node: TreeNode):
"""Yield next node in post order from node"""
for child in node.get_children():
self.post_order(child)
yield node
if __name__ == '__main__':
root = TreeNode('root')
depth1a = TreeNode('1a')
depth1b = TreeNode('1b')
root.add_children(depth1a, depth1b)
tree = Tree(root)
for node in tree.post_order(root):
print(node.get_element())
当我运行代码时,它只会打印出来
root
这是第一个节点的元素,而不是我想要的
1a
1b
root
有谁知道我做错了什么?
感谢大家
解决方案
推荐阅读
- scheme - 如何将字符串转换为方案中的整数列表?
- c# - 如何使用组合框从 xml 文件中获取所需信息到列表框?
- javascript - 将动态生成的选中复选框的值传递给 ASP.NET MVC 中的方法
- python - networkX中无向图的参数传递闭包
- javascript - react-testing-library cleanup 在代码沙箱中不起作用
- reactjs - Material-UI Paper 组件不使文本居中
- python-3.x - sockets.connect() 在创建连接时返回 None
- java - 使用 textarea.moveCaretPosition(textarea.getText().length()) 后如何取消选择文本的默认选择;
- sql - 如何仅检索每个日期的顶部行
- sql - 如何在具有 ID 但我需要按名称查找的表中查找元素?