এই সমস্যায়, আমাদের একটি বাইনারি ট্রি দেওয়া হয়। আমাদের কাজ হল বাইনারি ট্রি-তে সমস্ত ডান নোডের মধ্যে সর্বাধিক খুঁজে পাওয়া।
সমস্যা বর্ণনা: এখানে, আমাদের বাইনারি ট্রির সমস্ত ডান চাইল্ড নোডের মধ্যে সর্বাধিক মান খুঁজে বের করতে হবে।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট:
আউটপুট: ৯
ব্যাখ্যা:
সমস্ত ডান নোড হল:{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