c语言键盘输入先建立结点数据类型为正int类型的用二叉链表存储的二叉树,再求这棵二叉树的结点值和。
时间: 2024-02-06 21:12:14 浏览: 62
好的,以下是C语言的代码实现,实现建立二叉树并求结点值和的功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义二叉树结点数据类型
struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
};
// 递归建立二叉树
struct TreeNode* createTree() {
int val;
scanf("%d", &val);
if (val == -1) { // -1表示空节点
return NULL;
}
struct TreeNode* root = (struct TreeNode*)malloc(sizeof(struct TreeNode));
root->val = val;
root->left = createTree();
root->right = createTree();
return root;
}
// 递归求二叉树结点值和
int sumOfNodes(struct TreeNode* root) {
if (root == NULL) {
return 0;
}
return root->val + sumOfNodes(root->left) + sumOfNodes(root->right);
}
int main() {
printf("请输入二叉树结点的值,空节点用-1表示:\n");
struct TreeNode* root = createTree();
int sum = sumOfNodes(root);
printf("二叉树结点值的和为:%d\n", sum);
return 0;
}
```
输入格式和C++代码一样,输出结果也一样。
阅读全文