c语言求二叉树最大值
时间: 2023-07-02 16:16:08 浏览: 88
C语言用递归法求二叉树的最大宽度并层序遍历输出
假设二叉树的节点结构体为:
```c
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
```
可以使用递归的方式求解二叉树的最大值,具体实现如下:
```c
int maxVal(struct TreeNode* root) {
if (root == NULL) {
return INT_MIN;
}
int leftMax = maxVal(root->left);
int rightMax = maxVal(root->right);
return fmax(fmax(leftMax, rightMax), root->val);
}
```
首先判断当前节点是否为空,如果为空则返回INT_MIN,表示该分支没有取到任何节点的值。如果不为空,则分别递归求解左子树和右子树的最大值,并将其与当前节点的值取最大值返回。
阅读全文