c++ 二叉链表编写算法求二叉树的叶子结点数
时间: 2024-02-03 20:04:04 浏览: 87
二叉链表的应用c++代码_二叉链表c++代码_
根据二叉链表的定义,可以通过递归的方式求解二叉树的叶子结点数。具体算法如下:
1. 如果当前结点为空,则返回0。
2. 如果当前结点的左右子树都为空,则返回1。
3. 否则,递归计算左子树和右子树的叶子结点数,并将它们相加返回。
下面是C++代码实现:
```c++
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
int countLeafNodes(TreeNode* root) {
if (root == NULL) {
return 0;
}
if (root->left == NULL && root->right == NULL) {
return 1;
}
return countLeafNodes(root->left) + countLeafNodes(root->right);}
```
阅读全文