在二叉树中,节点的级别指的是该节点从根节点开始,到达该节点所需要经过的边的数量。根节点的级别为0,它的子节点的级别为1,依此类推。
要找到一个节点的级别,可以使用递归的方式进行遍历。从根节点开始,如果目标节点是根节点,则它的级别为0。否则,分别递归遍历左子树和右子树,直到找到目标节点。在递归遍历的过程中,每递归一层,就将当前节点的级别加1。
下面是一个示例代码,它通过递归实现了查找目标节点在二叉树中的级别:
pythonCopy codeclass Node: def __init__(self, val=None, left=None, right=None): self.val = val self.left = left self.right = right def find_level(root, target, level=0): if root is None: return -1 if root.val == target: return level left_level = find_level(root.left, target, level+1) right_level = find_level(root.right, target, level+1) if left_level == -1: return right_level else: return left_level
在这个代码中,find_level函数接收三个参数:root是二叉树的根节点,target是要查找的目标节点的值,level是当前节点的级别。如果当前节点是空节点,说明已经遍历完了二叉树但是没有找到目标节点,返回-1。如果当前节点的值等于目标节点的值,说明找到了目标节点,返回当前节点的级别。否则,递归遍历左子树和右子树,并将当前节点的级别加1。如果在左子树中找到了目标节点,就返回左子树中目标节点的级别;否则,在右子树中查找目标节点,并返回右子树中目标节点的级别。
find_level
root
target
level
原文链接:codingdict.net