统计二叉树中度为1结点个数c++
时间: 2024-04-17 16:25:44 浏览: 193
c++实现在二叉检索树中删除一个结点的算法
5星 · 资源好评率100%
可以使用递归的方式来统计二叉树中度为1的节点数量。首先,我们需要定义二叉树的数据结构:
```cpp
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
```
然后,我们可以使用一个递归函数来统计二叉树中度为1的节点数量:
```cpp
int countDegreeOneNodes(TreeNode* root) {
if (root == NULL) {
return 0;
}
int count = 0;
// 如果当前节点的度为1,则count加1
if ((root->left == NULL && root->right != NULL) || (root->left != NULL && root->right == NULL)) {
count++;
}
// 递归统计左子树和右子树中度为1的节点数量
count += countDegreeOneNodes(root->left);
count += countDegreeOneNodes(root->right);
return count;
}
```
通过调用 `countDegreeOneNodes` 函数并传入二叉树的根节点,即可得到度为1的节点数量。
阅读全文