任意创建一棵二叉树,统计该二叉树的叶子结点数C++代码
时间: 2023-06-16 21:05:07 浏览: 86
求二叉树叶子结点的个数(c++类建立)
5星 · 资源好评率100%
下面是一个简单的二叉树结构体和统计叶子节点数的C++代码:
```cpp
#include <iostream>
using namespace std;
struct TreeNode{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x): val(x), left(NULL), right(NULL) {}
};
int count_leaves(TreeNode* root){
if(root == NULL){
return 0;
}
if(root->left == NULL && root->right == NULL){
return 1;
}
return count_leaves(root->left) + count_leaves(root->right);
}
int main(){
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
root->right->left = new TreeNode(6);
root->right->right = new TreeNode(7);
cout << "Leaf node count: " << count_leaves(root) << endl; // 4
return 0;
}
```
在这个例子中,我们创建了一棵二叉树,并使用 `count_leaves` 函数统计了这棵树的叶子节点数。该函数使用递归的方式遍历二叉树,如果当前节点为叶子节点,则返回1,否则返回左右子树的叶子节点个数之和。最终,我们输出了叶子节点的总数。
阅读全文