मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है और एक अन्य इनपुट जिसे वैल कहा जाता है, हमें यह जांचना होगा कि वैल ट्री में मौजूद है या नहीं।
तो, अगर इनपुट पसंद है
वैल =7, तो आउटपुट ट्रू होगा, क्योंकि ट्री में 7 मौजूद है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे-
-
फ़ंक्शन को हल करें () परिभाषित करें। यह जड़ लेगा, वैल
-
अगर रूट शून्य है, तो
-
झूठी वापसी
-
-
यदि रूट का डेटा वैल के समान है, तो
-
सही लौटें
-
-
यदि रूट का डेटा <वैल, तो
-
वापसी हल (रूट के बाएं, वैल)
-
-
वापसी हल (रूट का अधिकार, वैल)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें-
उदाहरण
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