键盘输入先建立结点数据类型为正int类型的用二叉链表存储的二叉树,再求这棵二叉树的结点值和。
时间: 2024-02-06 13:12:14 浏览: 120
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径
好的,我理解了你的问题。以下是建立二叉树并求结点值和的C++代码,你可以参考一下:
```cpp
#include <iostream>
using namespace std;
// 定义二叉树结点数据类型
struct Node {
int val;
Node* left;
Node* right;
Node(int x) : val(x), left(NULL), right(NULL) {}
};
// 递归建立二叉树
Node* createTree() {
int val;
cin >> val;
if (val == -1) { // -1表示空节点
return NULL;
}
Node* root = new Node(val);
root->left = createTree();
root->right = createTree();
return root;
}
// 递归求二叉树结点值和
int sumOfNodes(Node* root) {
if (root == NULL) {
return 0;
}
return root->val + sumOfNodes(root->left) + sumOfNodes(root->right);
}
int main() {
cout << "请输入二叉树结点的值,空节点用-1表示:" << endl;
Node* root = createTree();
int sum = sumOfNodes(root);
cout << "二叉树结点值的和为:" << sum << endl;
return 0;
}
```
输入格式为:
```
请输入二叉树结点的值,空节点用-1表示:
1 2 -1 -1 3 4 -1 -1 5 -1 -1
```
表示的二叉树为:
```
1
/ \
2 3
/ \
4 5
```
输出结果为:
```
二叉树结点值的和为:15
```
阅读全文