统计二叉树的叶子结点个数
时间: 2023-12-17 22:25:40 浏览: 198
好的,这是一个经典的二叉树问题。统计二叉树的叶子结点个数可以通过递归实现。具体思路是,如果当前节点为空,则返回0;如果当前节点是叶子节点,则返回1;否则,递归计算左子树和右子树的叶子节点个数,然后将它们相加即可。
以下是 Python 代码实现:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def count_leaves(root: TreeNode) -> int:
if not root:
return 0
if not root.left and not root.right:
return 1
return count_leaves(root.left) + count_leaves(root.right)
```
相关问题
统计二叉树叶子结点个数
统计二叉树叶子结点个数的方法是通过递归实现的。具体步骤如下:
1. 如果当前节点为空,则返回0。
2. 如果当前节点没有左右子节点,则返回1。
3. 否则,递归计算左子树和右子树的叶子结点个数,并将它们相加。
以下是示例代码:
```
int countLeafNodes(TreeNode* root) {
if (root == nullptr) {
return 0;
}
if (root->left == nullptr && root->right == nullptr) {
return 1;
}
return countLeafNodes(root->left) + countLeafNodes(root->right);
}
```
6-3 统计二叉树叶子结点个数
题目要求实现一个函数,统计二叉树的叶子结点个数。具体实现方法是遍历二叉树,对于每个节点,如果它是叶子节点,则计数器加1,否则递归遍历它的左右子树。最后返回计数器的值即可。
以下是参考代码:
```c
int LeafCount(BiTree T) {
int cnt = 0;
if (T != NULL) {
cnt += LeafCount(T->lchild); // 左子树的叶子节点个数
cnt += LeafCount(T->rchild); // 右子树的叶子节点个数
if (T->lchild == NULL && T->rchild == NULL) // 如果是叶子节点
cnt++; // 那么就自加一
}
return cnt;
}
```
阅读全文
相关推荐
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)