C语言求二叉树以元素值为x的节点为根的子树深度代码
时间: 2023-06-06 13:06:47 浏览: 114
c语言关于二叉树代码
以下是 C 语言代码实现求二叉树以元素值为 x 的节点为根的子树深度:
```
// 定义二叉树结点
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
// 求以 root 为根节点的二叉树深度
int depth(struct TreeNode* root) {
if (root == NULL) {
return 0;
}
int leftDepth = depth(root->left);
int rightDepth = depth(root->right);
return leftDepth > rightDepth ? (leftDepth + 1) : (rightDepth + 1);
}
// 求二叉树以元素值为 x 的节点为根的子树深度
int subTreeDepth(struct TreeNode* root, int x) {
if (root == NULL) {
return 0;
}
if (root->val == x) {
return depth(root);
} else {
int leftDepth = subTreeDepth(root->left, x);
int rightDepth = subTreeDepth(root->right, x);
return leftDepth > rightDepth ? leftDepth : rightDepth;
}
}
```
注意:以上代码实现的二叉树不一定是完全二叉树。
阅读全文