树的高度和深度

### 结构中的高度深度概念 在形数据结构中,高度深度是两个重要的属性,用于描述节点的位置及其层次关系。 #### 高度 结点的高度是从该节点向下分支的叶节点开始自底向上逐层累加得到的结果。例如,在一棵中如果存在一个节点K位于的最底部作为叶子节点,则其高度通常被定义为1,而其他较高位置上的节点如G可能具有更大的高度值,比如3[^2]。 #### 深度 相比之下,结点的深度则是指从根节点出发向下的路径长度,即从顶部到底部计算经过了多少级。因此,当提到某个特定节点(像例子中的B)处于第二层时,意味着它距离根正好两步之遥,故此它的深度等于2。 #### 关系 值得注意的是,虽然单个节点的高度深度可以不同——这取决于各自子的发展情况以及所在的具体位置——但对于整个而言,这两个量确实存在着一定的关联: - **相等条件**:对于整棵完整的来说,最深的那个叶结点所处的那一层决定了整体的最大深度;同样地,由根至这些末端元素构成了一条最长链路,从而也代表了全最高的部分。换句话说,最深层级上的任意一片叶都对应着最大高度,使得两者数值一致[^1]。 然而需要注意的是,这种一致性仅适用于全局范围内的比较,并不意味着局部范围内任一对应节点间的高度深度必然相同。实际上,即使在同一水平线上也可能出现差异化的测量结果,具体表现为某些兄弟姐妹级别的内部成员可能会拥有不同的后代分布模式,进而影响到各自的垂直跨度指标。 ```python class TreeNode: def __init__(self, value=None): self.value = value self.children = [] def calculate_depth(node, current_level=0): if not node: return 0 max_child_depth = 0 for child in node.children: max_child_depth = max(max_child_depth, calculate_depth(child, current_level + 1)) return max(current_level, max_child_depth) def calculate_height(node): if not node or not node.children: return 1 heights_of_children = [] for child in node.children: heights_of_children.append(calculate_height(child)) return 1 + (max(heights_of_children) if heights_of_children else 0) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值