मान लीजिए कि हमारे पास एक बाइनरी ट्री है जिसमें कुछ मान हैं, हमें ट्री के सभी मानों का योग ज्ञात करना है।
तो, अगर इनपुट पसंद है
तो आउटपुट 14
. होगाइसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
फ़ंक्शन रिकर्स () को परिभाषित करें। यह नोड लेगा
-
वैल:=नोड का मान
-
यदि नोड का बायां भाग शून्य नहीं है, तो
-
वैल:=वैल + रिकर्स (नोड के बाएं)
-
-
यदि नोड का अधिकार शून्य नहीं है, तो
-
वैल:=वैल + रिकर्स (नोड के दाएं)
-
-
वापसी वैल
-
मुख्य विधि से, निम्न कार्य करें -
-
यदि जड़ नहीं शून्य शून्य है, तो
-
वापसी 0
-
-
वापसी रिकर्स (रूट)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class TreeNode: def __init__(self, data, left = None, right = None): self.val = data self.left = left self.right = right class Solution: def recurse(self, node): val = node.val if node.left: val += self.recurse(node.left) if node.right: val += self.recurse(node.right) return val def solve(self, root): if not root: return 0 return self.recurse(root) ob = Solution() root = TreeNode(2) root.right = TreeNode(4) root.right.left = TreeNode(3) root.right.right = TreeNode(5) print(ob.solve(root))
इनपुट
root = TreeNode(2) root.right = TreeNode(4) root.right.left = TreeNode(3) root.right.right = TreeNode(5)
आउटपुट
14