📅  最后修改于: 2023-12-03 15:39:40.840000             🧑  作者: Mango
在二叉树中,节点有层次之分。我们可以通过遍历树来访问每个节点,但是如何访问二叉树中两个给定级别之间的所有节点呢?
我们可以通过递归实现这一功能。具体实现如下:
def print_between_levels(root, low, high, level):
"""
打印二叉树中两个给定级别之间的所有节点
"""
if root is None:
return
# 如果当前节点所在层级在要求的层级之间,则打印该节点
if low <= level <= high:
print(root.val)
# 递归遍历子树,并将层级加一
print_between_levels(root.left, low, high, level + 1)
print_between_levels(root.right, low, high, level + 1)
这个函数接受四个参数,分别是根节点 root
、要求的层级范围 low
和 high
,以及当前节点所在的层级 level
。首先判断当前节点所在层级是否在要求的范围内,如果是则打印该节点。然后递归遍历左右子树,并将层级加一。
在调用这个函数时,我们需要指定要求的层级范围。例如,如果我们想打印二叉树中第三层和第四层之间的所有节点,可以这样调用:
print_between_levels(root, 3, 4, 1)
其中 root
是根节点,3
和 4
是要求的层级范围,而 1
表示当前节点所在的层级为第一层。
这样就可以打印出所有在第三层和第四层之间的节点了。