使用c语言完成:使用层次遍历,求每一层叶子结点的个数
时间: 2024-10-18 19:13:30 浏览: 50
C语言中二叉树树的层次遍历
在C语言中,我们可以使用递归的方式来进行层次遍历并计算每个层级的叶子节点(没有孩子的节点)的数量。这里是一个简单的示例,假设我们有一个二叉树结构:
```c
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
int countLeaves(TreeNode* root) {
if (root == NULL) { // 如果节点为空,则返回0
return 0;
}
if (root->left == NULL && root->right == NULL) { // 如果当前节点是叶子节点
return 1; // 返回1,表示该节点是一颗叶子
} else { // 否则,递归计算左右子树的叶子节点总数
return countLeaves(root->left) + countLeaves(root->right);
}
}
```
这个函数`countLeaves`会从根节点开始,如果遇到的是叶子节点就直接返回1,如果不是,就继续递归地计算其左右子树的叶子节点数并相加。
如果你想要获取特定层级的叶子节点数,可以在遍历时添加额外的计数器,并在达到目标层级时返回计数值。
阅读全文