用c语言用递归算法计算二叉树宽度
时间: 2024-05-07 19:17:00 浏览: 82
C语言用递归法求二叉树的最大宽度并层序遍历输出
计算二叉树的宽度可以使用递归算法。递归地计算左子树和右子树的宽度,然后将它们相加。以下是使用C语言实现的递归算法:
```c
/* 计算二叉树的宽度 */
int get_width(TreeNode* root) {
if (root == NULL) {
return 0;
}
// 计算左子树的宽度
int left_width = get_width(root->left);
// 计算右子树的宽度
int right_width = get_width(root->right);
// 计算当前节点的宽度,即左子树的宽度、右子树的宽度和1的和
int width = left_width + right_width + 1;
return width;
}
```
其中,TreeNode是二叉树节点的结构体,left和right分别表示左子树和右子树的指针。需要注意的是,如果二叉树为空,则宽度为0。
阅读全文