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

इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- एक फंक्शन tree_sum() परिभाषित करें जो ट्री का रूट लेता है
- यदि रूट null है, तो 0 वापस करें
- रूट का डेटा := tree_sum(रूट का बायां) + tree_sum(रूट का दायां) + रूट का डेटा
- रूट का डेटा वापस करें
- मुख्य विधि से tree_sum(रूट) कॉल करें और रूट वापस करें
उदाहरण
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):
def tree_sum(root):
if root is None:
return 0
root.data = tree_sum(root.left) + tree_sum(root.right) + root.data
return root.data
tree_sum(root)
return root
ob = Solution()
root = TreeNode(2)
root.left = TreeNode(3)
root.right = TreeNode(4)
root.left.left = TreeNode(9)
root.left.right = TreeNode(7)
ob.solve(root)
inorder(root)
इनपुट
root = TreeNode(12) root.left = TreeNode(8) root.right = TreeNode(15) root.left.left = TreeNode(3) root.left.right = TreeNode(10)
आउटपुट
9, 19, 7, 25, 4,