इस समस्या में, हमें एक बाइनरी ट्री दिया गया है। हमारा कार्य बाइनरी ट्री में अधिकतम (या न्यूनतम) मान ढूंढना है।
समस्या विवरण: हमें बाइनरी ट्री के उन नोड्स को ढूंढना है जिनका मान बाइनरी ट्री में अधिकतम और न्यूनतम है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट:

आउटपुट: max = 9 , min = 1
समाधान दृष्टिकोण
हमें बाइनरी ट्री के अधिकतम नोड को ढूंढना है। हम पॉइंटर को तब तक ट्रैवर्स करके करेंगे जब तक हम लीफ नोड तक नहीं पहुंच जाते और फिर ट्री के अधिकतम नोड को ढूंढेंगे।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,
उदाहरण
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node *left, *right;
Node(int data) {
this->data = data;
this->left = NULL;
this->right = NULL;
}
};
int findMaxNode(Node* root) {
if (root == NULL)
return -100;
int maxVal = root->data;
int leftMaxVal = findMaxNode(root->left);
int rightMaxVal = findMaxNode(root->right);
if (leftMaxVal > maxVal)
maxVal = leftMaxVal;
if (rightMaxVal > maxVal)
maxVal = rightMaxVal;
return maxVal;
}
int main() {
Node* NewRoot = NULL;
Node* root = new Node(5);
root->left = new Node(3);
root->right = new Node(2);
root->left->left = new Node(1);
root->left->right = new Node(8);
root->right->left = new Node(6);
root->right->right = new Node(9);
cout<<"The Maximum element of Binary Tree is "<<findMaxNode(root) << endl;
return 0;
}
आउटपुट
The Maximum element of Binary Tree is 9