用c语言实现找到二叉树中的最大最小值
时间: 2024-05-14 17:16:02 浏览: 87
假设二叉树的节点结构体定义如下:
```c
// 二叉树节点结构体
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
```
则可以通过递归实现找到二叉树中的最大最小值,具体代码如下:
```c
// 找到二叉树中的最大值
int findMax(TreeNode* root) {
if(root == NULL) {
return INT_MIN;
}
int leftMax = findMax(root->left);
int rightMax = findMax(root->right);
return fmax(root->val, fmax(leftMax, rightMax));
}
// 找到二叉树中的最小值
int findMin(TreeNode* root) {
if(root == NULL) {
return INT_MAX;
}
int leftMin = findMin(root->left);
int rightMin = findMin(root->right);
return fmin(root->val, fmin(leftMin, rightMin));
}
```
其中,`INT_MIN` 和 `INT_MAX` 分别表示 int 类型的最小值和最大值。函数 `fmax` 和 `fmin` 分别用于求最大值和最小值。
阅读全文