Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Tree {
- private:
- struct TreeNode {
- int val;
- TreeNode *l, *r;
- TreeNode(int val, TreeNode *l = nullptr, TreeNode *r = nullptr) :
- val(val), l(l), r(r) {}
- };
- size_t size;
- TreeNode *root;
- TreeNode *__insert(TreeNode *root, TreeNode *node) {
- if(!root)
- return node;
- if(node->val < root->val)
- root->l = __insert(root->l, node);
- else
- root->r = __insert(root->r, node);
- return root;
- }
- bool __all_nodes_equal(TreeNode *root, int key) {
- if(!root) return true;
- if(root->val != key)
- return false;
- else
- return __all_nodes_equal(root->l, key) && __all_nodes_equal(root->r, key);
- }
- public:
- Tree() : size(0), root(nullptr) {}
- void insert(int val) {
- root = __insert(root, new TreeNode(val));
- }
- bool all_nodes_equal() {
- return __all_nodes_equal(root, root->val);
- }
- };
- int main() {
- Tree t;
- int val;
- while(std::cin >> val) {
- t.insert(val);
- }
- std::cout << t.all_nodes_equal();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement