用C++设计求一棵二叉树中结点总数的算法并实现。
时间: 2023-06-03 14:02:20 浏览: 138
删除一个结点-C++版数据结构-张宏
好的,这个问题是计算二叉树中节点总数的算法,涉及C语言编程。可以通过递归实现,具体代码如下:
```c
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
int countNodes(struct TreeNode* root){
if(root == NULL) return 0;
return countNodes(root->left) + countNodes(root->right) + 1;
}
```
该函数的功能是计算二叉树中节点总数,入口参数为该树的根节点。函数利用递归的思想,先判断根节点是否为空,如果为空,返回0;否则计算左右子树的节点总数之和再加上根节点,返回该结果。
阅读全文