#include<iostream>
#include<string>
#include <queue>
using namespace std;
class Node {
public:
int data;
Node* left;
Node* right;
Node(int x);
};
Node::Node(int x) {
this->data = x;
this->left = NULL;
this->right = NULL;
}
class Tree {
public:
Node* root;
queue<Node*> q;
Tree() {
this->root = new Node(1);
this->root->left = new Node(3);
this->root->right = new Node(2);
this->root->left->left = new Node(7);
this->root->left->right = new Node(6);
this->root->right->left = new Node(5);
this->root->right->right = new Node(4);
this->root->right->left->left = new Node(8);
}
void test() {
int sum_r = 0;
int sum_l = 0;
q.push(this->root);
while (!q.empty())
{
Node* t = q.front();
if(t->right)
sum_r = sum_r + t->right->data;
if (t->left)
sum_l = sum_l + t->left->data;
if (t->right != NULL)
q.push(t->right);
if (t->left != NULL)
q.push(t->left);
q.pop();
}
cout << "sum_r: " << sum_r << " sum_l: " << sum_l << endl;
}
};
int main() {
Tree t;
t.test();
return 0;
}
计算二叉树所有右节点的和,所有左节点的和
最新推荐文章于 2023-09-08 01:52:57 发布