求二叉树结点的总数,c简单代码
时间: 2024-01-23 16:05:54 浏览: 20
下面是一个简单的 C 代码,实现了二叉树节点总数的计算:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结点
struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
};
// 计算二叉树结点总数
int countNodes(struct TreeNode* root) {
if (!root) return 0;
return countNodes(root->left) + countNodes(root->right) + 1;
}
int main() {
// 构造测试二叉树
struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->val = 1;
root->left = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->right = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->left->val = 2;
root->right->val = 3;
root->left->left = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->left->right = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->right->left = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->left->left->val = 4;
root->left->right->val = 5;
root->right->left->val = 6;
// 计算二叉树结点总数
int count = countNodes(root);
printf("二叉树结点总数为:%d\n", count);
return 0;
}
```
输出结果为:
```
二叉树结点总数为:6
```