广度优先遍历
程序员文章站
2022-06-01 12:13:18
...
def PrintNodeAtLevel(treeNode, level):
"""按层序遍历输出树中某一层的值"""
if not treeNode or level < 0 :
return 0
if level == 0:
print(treeNode.val)
return 1
printNodeAtLevel(treeNode.lchild, level - 1)
PrintNodeAtLevel(treeNode.rchild, level - 1)
treeNode为根节点,level为层数,例如找第3层的值,到根的左孩子,level - 1 ,继续找这个节点的左孩子level - 1 ,level为0时输出这个值,之后找这个节点的右孩子,level - 1,level为0时输出,等等等
最后输出最右的节点
先按层遍历求出某一层的值,再利用求某一层的值的方法从根节点开始按层遍历输出树的值
def PrintNodeByLevel(treeNode, depth):
"""已知树的深度按层遍历输出树的值"""
for level in range(depth):
PrintNodeAtLevel(treeNode, level)
下一篇: 一个简单的红包分配实现