用c语言用递归算法计算二叉树深度
时间: 2024-05-15 17:18:23 浏览: 102
二叉树递归C语言版
好的,接下来让我来回答你的问题。计算二叉树深度的算法通常是通过递归实现的。具体实现如下:
首先,判断二叉树是否为空,如果为空,则深度为0。
然后,递归计算左子树和右子树的深度,取两者的较大值,并加上1(根节点的深度)即可得到整个二叉树的深度。
C语言的代码如下所示:
```
//定义树结点
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
//递归计算二叉树深度的函数
int maxDepth(TreeNode* root) {
if (root == NULL) {//二叉树为空
return 0;
} else {//二叉树不为空
int leftDepth = maxDepth(root->left);//计算左子树深度
int rightDepth = maxDepth(root->right);//计算右子树深度
return leftDepth > rightDepth ? leftDepth + 1 : rightDepth + 1;//返回左右子树深度的较大值+1
}
}
```
希望我的回答能够解决你的问题,如果还有什么不明白的地方,欢迎随时向我提问。
阅读全文