在一棵二叉树中,求以值为X的结点为根结点的子树的深度
时间: 2024-03-13 11:48:19 浏览: 57
求二叉树的深度
5星 · 资源好评率100%
可以通过递归遍历二叉树,在遍历过程中判断每个节点的值是否为X,如果是X,则递归求解其左子树和右子树的深度并返回较大的值加1即可。
具体的实现可以参考下面的示例代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def subtree_depth(root: TreeNode, x: int) -> int:
if not root:
return 0
if root.val == x:
return max(depth(root.left), depth(root.right)) + 1
return subtree_depth(root.left, x) or subtree_depth(root.right, x)
def depth(root: TreeNode) -> int:
if not root:
return 0
return max(depth(root.left), depth(root.right)) + 1
```
其中,`subtree_depth`函数用于求以值为X的结点为根结点的子树的深度,`depth`函数用于求某个节点的深度。
阅读全文