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

आउटपुट: 9
व्याख्या:
सभी दाएं नोड्स हैं: {2, 8, 9}। उनमें से अधिकतम 9 है।
समाधान दृष्टिकोण
समस्या को हल करने के लिए, हमें ट्री को ट्रैवर्स करना होगा और जांचना होगा कि इसका दायां चाइल्ड मौजूद है या नहीं। यदि मौजूद है, तो maxRight तत्व से तुलना करें और यदि यह बड़ा है तो बदलें।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,
उदाहरण
#include <iostream>
using namespace std;
struct Node {
int data;
struct Node *left, *right;
};
Node* newNode(int data) {
Node* temp = new Node;
temp->data = data;
temp->left = temp->right = NULL;
return temp;
}
int findMaxRightNode(Node* root) {
int maxRight = -100;
if (root == NULL)
return -1;
if (root->right != NULL)
maxRight = root->right->data;
return max( findMaxRightNode(root->right), max(maxRight, findMaxRightNode(root->left) ) );
}
int main() {
Node* root = newNode(5);
root->left = newNode(3);
root->right = newNode(2);
root->left->left = newNode(1);
root->left->right = newNode(8);
root->right->left = newNode(6);
root->right->right = newNode(9);
cout<<"The maximum among all right nodes in Binary Tree is "<< findMaxRightNode(root);
return 0;
}
आउटपुट
The maximum among all right nodes in Binary Tree is 9