欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

广度优先遍历

程序员文章站 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)
相关标签: 随笔