मान लीजिए हमारे पास एक बाइनरी ट्री है, हम बार-बार उन सभी पत्तों को हटाएंगे जिनके मान सम हैं। सभी को हटाने के बाद, यदि केवल सम मान वाला रूट बचता है, तो उसे भी हटा दिया जाएगा।
उदाहरण के लिए, यदि इनपुट जैसा है:
तो आउटपुट होगा:

इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- solve() फंक्शन परिभाषित करें जो रूट लेता है
- यदि रूट null है, तो null वापस करें
- रूट का बायां := solve(रूट का बायां)
- रूट का दायां := solve(रूट का दायां)
- यदि रूट पत्ता है और रूट का डेटा सम है, तो null वापस करें
- रूट वापस करें
उदाहरण
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,