编写函数,计算一棵给定二叉树的所有结点个数
时间: 2024-03-11 17:47:52 浏览: 72
好的,以下是计算一棵给定二叉树的所有结点个数的 Python 代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def count_nodes(root: TreeNode) -> int:
if not root:
return 0
return 1 + count_nodes(root.left) + count_nodes(root.right)
```
其中,`TreeNode` 是二叉树的结点类,包括 `val` 表示结点值,`left` 表示左子树,`right` 表示右子树。
函数 `count_nodes` 是计算二叉树结点个数的函数,采用递归的方式实现。如果当前结点为空,返回 0。否则,返回 1(表示当前结点)加上左子树的结点个数和右子树的结点个数。
相关问题
编写函数,计算一棵给定二叉树的所有结点个数c++
好的,以下是计算一棵给定二叉树的所有结点个数的 C++ 代码:
```cpp
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
int countNodes(TreeNode* root) {
if (!root) {
return 0;
}
return 1 + countNodes(root->left) + countNodes(root->right);
}
```
其中,`TreeNode` 是二叉树的结点类,包括 `val` 表示结点值,`left` 表示左子树,`right` 表示右子树。
函数 `countNodes` 是计算二叉树结点个数的函数,采用递归的方式实现。如果当前结点为空,返回 0。否则,返回 1(表示当前结点)加上左子树的结点个数和右子树的结点个数。
编写一个C语言函数计算一颗给定二叉树的所有结点个数
可以使用递归的方式来计算一颗给定二叉树的所有结点个数,具体实现如下:
```c
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
int countNodes(struct TreeNode* root) {
if (root == NULL) {
return 0;
}
return 1 + countNodes(root->left) + countNodes(root->right);
}
```
首先判断当前节点是否存在,如果不存在则返回节点个数为0;否则节点个数至少为1,再加上左子树的节点个数和右子树的节点个数即可。
阅读全文