मान लीजिए कि हमारे पास एक बाइनरी ट्री है, हम बार-बार उन सभी पत्तों को हटा देंगे जिनमें सम मान हैं। सभी को हटाने के बाद, यदि इसका केवल सम मानों वाला रूट है, तो वह भी हटा दिया जाएगा।
तो, अगर इनपुट पसंद है
तो आउटपुट होगा
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
फ़ंक्शन को हल करें () परिभाषित करें। यह जड़ लेगा
-
अगर रूट शून्य है, तो
-
वापसी शून्य
-
-
रूट का बायां:=हल करें (रूट के बाएं)
-
जड़ का अधिकार :=हल करें (मूल का दायां)
-
यदि जड़ पत्ती है और जड़ का डेटा सम है, तो
-
वापसी शून्य
-
-
वापसी जड़
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class TreeNode: def __init__(self, data, left = None, right = None): self.data = data self.left = left self.right = right def inorder(root): if root: inorder(root.left) print(root.data, end = ', ') inorder(root.right) class Solution: def solve(self, root): if not root: return None root.left = self.solve(root.left) root.right = self.solve(root.right) if not root.left and not root.right and root.data % 2 == 0: return None return root ob = Solution() root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7) ob.solve(root) inorder(root)
इनपुट
root = TreeNode(13) root.left = TreeNode(12) root.right = TreeNode(14) root.right.left = TreeNode(16) root.right.right = TreeNode(22) root.right.left.left = TreeNode(4) root.right.left.right = TreeNode(7)
आउटपुट
13, 16, 7, 14,