假设一棵二叉树采用二叉链表存储结构,设计一个函数求一颗非空二叉树中的最小值结点,请使用c语言
时间: 2024-11-20 11:40:04 浏览: 14
二叉树之二叉链表
5星 · 资源好评率100%
在二叉链表存储的二叉树中,寻找最小值节点通常只需要从根节点开始,然后遍历左子树,因为左子树的所有节点都比根节点小。如果左子节点为空,那么当前节点就是最小值。下面是一个简单的C语言函数实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树节点结构
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 函数返回最小值节点
TreeNode* findMinNode(TreeNode* root) {
if (root == NULL || root->left == NULL) { // 如果根节点为空或者它的左子树为空,则它是最小值节点
return root;
} else {
return findMinNode(root->left); // 否则,递归查找左子树中的最小值
}
}
int main() {
// 初始化示例二叉树
// ...
// 调用函数并打印结果
TreeNode* minNode = findMinNode(root);
printf("Minimum value node: %d\n", minNode->val);
return 0;
}
```
阅读全文