二叉树叶子节点个数C语言代码
时间: 2024-11-12 17:10:51 浏览: 68
在C语言中,计算二叉树叶子节点(即没有孩子的节点)的数量可以采用递归的方式。以下是简单的代码示例:
```c
#include <stdio.h>
typedef struct Node {
int data;
struct Node* left;
struct Node* right;
} Node;
int countLeaves(Node* root) {
// 如果根节点为空,返回0
if (root == NULL)
return 0;
// 如果根节点是叶子节点(左右孩子都为空),则加1计数
else if (root->left == NULL && root->right == NULL)
return 1;
// 否则,递归地对左子树和右子树进行计数,并相加
else
return countLeaves(root->left) + countLeaves(root->right);
}
int main() {
// 假设已经创建好了一个二叉树,这里只是一个模板
Node* tree = ...; // 实际上需要你自己构建树
int leafCount = countLeaves(tree);
printf("二叉树的叶子节点数: %d\n", leafCount);
return 0;
}
```
在这个代码中,`countLeaves()` 函数会遍历整个二叉树并返回叶子节点的数量。在`main()`函数中,你需要创建实际的二叉树结构实例,并传入给 `countLeaves()`。
阅读全文