Find Maximum Element in Binary Tree in C++
Maximum In Binary Tree
Given a binary tree, we need to find the maximum element in the binary tree. As we need to visit each node present in the tree, we can use any tree traversal or recursion. In this page, Recursion is used.

Algorithm:
- If root is NULL, return minimum interger.
- Otherwise, recursive call the function for left and right subtree.
- Return the maximum value that is max of the right subtree, left subtree and the data present in root.

Code:
#include<bits/stdc++.h>
using namespace std;
class Tree {
public:
int data;
Tree* left = NULL,*right = NULL;
// Constructor initialised
Tree(int x) {
data = x;
left = NULL;
right = NULL;
}
};
int maximum_tree(Tree *root) {
if (root == NULL) return INT_MIN; // If null return minimum number
// Else return the max of number in left subtree, right subtree and the data
return max(root -> data,max(maximum_tree(root->left),maximum_tree(root -> right)));
}
int main() {
Tree *root = new Tree(10);
root -> left = new Tree(22);
root -> right = new Tree(10);
root -> left -> left = new Tree(11);
root -> left -> right = new Tree(10);
cout << maximum_tree(root);
return 0;
}
Output:
22
Time Complexity To Find Maximum In Binary Tree
Time Complexity
O(n)
Space Complexity
O(1)
Login/Signup to comment