写出二叉树节点的结构体定义,然后编写一个递归函数统计二叉树上叶子节点的数目。
时间: 2024-04-29 16:03:17 浏览: 100
erchashu.rar_二叉树_叶子节点
二叉树节点的结构体定义如下:
```
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
```
递归函数统计二叉树上叶子节点的数目的代码如下:
```
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);
}
```
该函数的原理是,如果当前节点是叶子节点(即左右子树均为空),则返回1;否则递归调用左右子树,将它们的叶子节点数目相加返回。如果当前节点为空,则返回0。
阅读全文