假设二叉树采用二叉链存储结构存放,结点值为int类型,用c语言设计一个递归算法求二叉树bt中的所有叶子节点值大于等于k的结点个数
时间: 2023-05-25 17:06:50 浏览: 86
C语言数据结构之二叉树的非递归后序遍历算法
5星 · 资源好评率100%
下面是一个递归算法的实现:
```c
int CountNodes(TreeNode* root, int k) {
if (root == NULL) { // 递归边界条件
return 0;
}
if (root->left == NULL && root->right == NULL && root->val >= k) { // 叶子节点
return 1;
}
int leftCount = CountNodes(root->left, k); // 递归遍历左子树
int rightCount = CountNodes(root->right, k); // 递归遍历右子树
return leftCount + rightCount; // 返回左、右子树中符合条件的叶子节点个数之和
}
```
调用方法如下:
```c
int count = CountNodes(bt, k);
```
阅读全文