সমস্যা:
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি বাইনারি সার্চ ট্রির রুট (root1, root2) প্রথম ও دوم আর্গুমেন্ট হিসেবে এবং তৃতীয় আর্গুমেন্ট হিসেবে একটি সংখ্যা (target) নেবে। ফাংশনটি true রিটার্ন করবে যদি এবং কেবল যদি প্রথম ট্রিতে একটি নোড এবং دوم ট্রিতে একটি নোড থাকে যাদের মান যোগ করলে target হয়, অন্যথায় false।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const target = 23;
BSTs

তবে আউটপুট হবে –
const output = true;
আউটপুট ব্যাখ্যা:
কারণ প্রথম ট্রিতে ৬ এবং دوم ট্রিতে ১৭ আছে যাদের যোগফল ২৩।
উদাহরণ
কোডটি নিচের মতো –
class Node{ constructor(data) { this.data = data; this.left = null; this.right = null; }; }; class BinarySearchTree{ constructor(){ this.root = null; } insert(data){ var newNode = new Node(data); if(this.root === null){ this.root = newNode; }else{ this.insertNode(this.root, newNode); }; }; insertNode(node, newNode){ if(newNode.data < node.data){ if(node.left === null){ node.left = newNode; }else{ this.insertNode(node.left, newNode); }; } else { if(node.right === null){ node.right = newNode; }else{ this.insertNode(node.right,newNode); }; }; }; }; const tree1 = new BinarySearchTree(); tree1.insert(1); tree1.insert(3); tree1.insert(4); tree1.insert(2); tree1.insert(4); tree1.insert(5); tree1.insert(6); const tree2 = new BinarySearchTree(); tree2.insert(9); tree2.insert(6); tree2.insert(11); tree2.insert(3); tree2.insert(8); tree2.insert(10); tree2.insert(17); const twoSumBSTs = (root1, root2, target) => { if(root1 == null || root2 == null) return false; if(root1.data + root2.data == target) return true; if(root1.data + root2.data < target) { return twoSumBSTs(root1.right, root2, target) || twoSumBSTs(root1, root2.right, target); }else{ return twoSumBSTs(root1.left, root2, target) || twoSumBSTs(root1, root2.left, target); }; }; const target = 23; console.log(twoSumBSTs(tree1.root, tree2.root, target));আউটপুট
কনসোলে আউটপুট হবে –
true