首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用python获取二叉树中给定级别上的所有节点

二叉树是一种常见的数据结构,它由节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点。获取二叉树中给定级别上的所有节点可以通过递归遍历的方式实现。

以下是使用Python获取二叉树中给定级别上的所有节点的代码示例:

代码语言:txt
复制
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def get_nodes_at_level(root, level):
    if root is None:
        return []

    if level == 1:
        return [root.val]

    left_nodes = get_nodes_at_level(root.left, level - 1)
    right_nodes = get_nodes_at_level(root.right, level - 1)

    return left_nodes + right_nodes

# 示例二叉树
#        1
#       / \
#      2   3
#     / \   \
#    4   5   6
#           /
#          7
# 获取第3级别上的所有节点
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)
root.right.right = TreeNode(6)
root.right.right.left = TreeNode(7)

level = 3
nodes = get_nodes_at_level(root, level)
print(f"第{level}级别上的所有节点:{nodes}")

输出结果为:

代码语言:txt
复制
第3级别上的所有节点:[4, 5, 6]

在这个例子中,我们定义了一个TreeNode类来表示二叉树的节点。get_nodes_at_level函数接收一个二叉树的根节点和目标级别作为参数,通过递归遍历的方式获取给定级别上的所有节点。当遍历到目标级别时,返回该节点的值。最后,我们使用示例二叉树进行测试,并输出第3级别上的所有节点。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅为示例,实际使用时应根据具体需求选择合适的腾讯云产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

玩透二叉树(Binary-Tree)及前序(先序)、中序、后序【递归和非递归】遍历

结点的度(Degree):结点的子树个数; 树的度:树的所有结点中最大的度数; 叶结点(Leaf):度为0的结点; 父结点(Parent):有子树的结点是其子树的根节点的父结点; 子结点/孩子结点(Child):若A结点是B结点的父结点,则称B结点是A结点的子结点; 兄弟结点(Sibling):具有同一个父结点的各结点彼此是兄弟结点; 路径和路径长度:从结点n1到nk的路径为一个结点序列n1,n2,…,nk。ni是ni+1的父结点。路径所包含边的个数为路径的长度; 祖先结点(Ancestor):沿树根到某一结点路径上的所有结点都是这个结点的祖先结点; 子孙结点(Descendant):某一结点的子树中的所有结点是这个结点的子孙; 结点的层次(Level):规定根结点在1层,其他任一结点的层数是其父结点的层数加1; 树的深度(Depth):树中所有结点中的最大层次是这棵树的深度;

03
领券