📌  相关文章
📜  打印二叉树中两个给定级别之间的所有节点(1)

📅  最后修改于: 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、要求的层级范围 lowhigh,以及当前节点所在的层级 level。首先判断当前节点所在层级是否在要求的范围内,如果是则打印该节点。然后递归遍历左右子树,并将层级加一。

在调用这个函数时,我们需要指定要求的层级范围。例如,如果我们想打印二叉树中第三层和第四层之间的所有节点,可以这样调用:

print_between_levels(root, 3, 4, 1)

其中 root 是根节点,34 是要求的层级范围,而 1 表示当前节点所在的层级为第一层。

这样就可以打印出所有在第三层和第四层之间的节点了。