求二叉树中以元素值为x的结点为根的子树的深度
时间: 2023-04-26 08:05:33 浏览: 213
求二叉树的深度
4星 · 用户满意度95%
要求二叉树中以元素值为x的结点为根的子树的深度,可以通过遍历二叉树来实现。具体步骤如下:
1. 从根节点开始遍历二叉树,如果当前节点的值等于x,则以该节点为根的子树深度为1,返回1。
2. 如果当前节点的值不等于x,则分别递归遍历该节点的左子树和右子树,得到左子树和右子树以x为根的子树深度。
3. 取左子树和右子树以x为根的子树深度的最大值,加1即为以x为根的子树深度。
4. 返回以x为根的子树深度。
代码实现如下:
```
int getDepth(TreeNode* root, int x) {
if (root == NULL) {
return ;
}
if (root->val == x) {
return 1;
}
int leftDepth = getDepth(root->left, x);
int rightDepth = getDepth(root->right, x);
if (leftDepth > rightDepth) {
return leftDepth + 1;
} else {
return rightDepth + 1;
}
}
```
阅读全文