C语言实现
时间: 2023-08-20 11:21:22 浏览: 44
好的,以下是求二叉树结点个数的C语言代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
int countNodes(TreeNode* root) {
if (!root) {
return 0;
}
return 1 + countNodes(root->left) + countNodes(root->right);
}
int main() {
// 构造一棵二叉树
TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = 1;
root->left = (TreeNode*)malloc(sizeof(TreeNode));
root->left->val = 2;
root->left->left = NULL;
root->left->right = NULL;
root->right = (TreeNode*)malloc(sizeof(TreeNode));
root->right->val = 3;
root->right->left = NULL;
root->right->right = NULL;
// 计算二叉树结点个数
int count = countNodes(root);
printf("The number of nodes in the binary tree is: %d\n", count);
return 0;
}
```
其中 `TreeNode` 是二叉树结点的结构体,包含了结点的值以及左右子节点;`countNodes` 是求二叉树结点个数的函数,采用递归的思想,不断累加左右子树结点个数,最后加上根节点,即为整个二叉树的结点个数。
希望这个代码能够帮助您解决问题,如果您还有其他问题,请随时提出。