ধরুন আমাদের একটি বাইনারি সার্চ ট্রি আছে এবং ভ্যাল নামে আরেকটি ইনপুট আছে, আমাদের পরীক্ষা করতে হবে যে ভ্যালটি গাছে আছে কি না।
সুতরাং, যদি ইনপুট মত হয়
val =7, তাহলে আউটপুট হবে True, যেহেতু 7টি ট্রিতে রয়েছে।
এটি সমাধান করার জন্য, আমরা এই পদক্ষেপগুলি অনুসরণ করব—
-
একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটি রুট নেবে, val
-
যদি রুট শূন্য হয়, তাহলে
-
রিটার্ন ফলস
-
-
যদি রুটের ডেটা ভ্যালের মতো হয়, তাহলে
-
রিটার্ন ট্রু
-
-
যদি রুট
এর ডেটা -
রিটার্ন সলভ (রুটের বামে, ভ্যাল)
-
-
রিটার্ন সলভ (রুটের ডান, ভাল)
আসুন আরও ভাল বোঝার জন্য নিম্নলিখিত বাস্তবায়ন দেখি—
উদাহরণ
class TreeNode: def __init__(self, data, left = None, right = None): self.data = data self.left = left self.right = right class Solution: def solve(self, root, val): if not root: return False if root.data == val: return True if root.data > val: return self.solve(root.left, val) return self.solve(root.right, val) ob = Solution() root = TreeNode(5) root.left = TreeNode(1) root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) print(ob.solve(root, 7))
ইনপুট
root = TreeNode(5) root.left = TreeNode(1) root.right = TreeNode(9) root.right.left = TreeNode(7) root.right.right = TreeNode(10) root.right.left.left = TreeNode(6) root.right.left.right = TreeNode(8) 7
আউটপুট
True