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