给你一颗二叉树,请你求出该二叉树的结点总数。
时间: 2024-01-23 10:07:11 浏览: 70
数据结构大作业求二叉树上结点的路径.zip
5星 · 资源好评率100%
好的,这是一道经典的二叉树问题。求二叉树的结点总数,可以使用递归算法来解决。具体的做法是:
1. 如果二叉树为空,节点数为0;
2. 如果二叉树非空,节点数为:左子树的节点数 + 右子树的节点数 + 1。
根据上述递归的思路,可以得到以下代码实现:
```
int countNodes(TreeNode* root) {
if (root == nullptr) {
return 0;
}
return countNodes(root->left) + countNodes(root->right) + 1;
}
```
其中,`TreeNode` 是二叉树节点的定义,包括 `val`、`left` 和 `right` 三个成员变量。
阅读全文