ধরুন আমাদের একটি বাইনারি ট্রি আছে যেখানে কিছু মান রয়েছে, আমাদের গাছের সমস্ত মানের সমষ্টি খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুট মত হয়
তাহলে আউটপুট হবে 14
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন recurse() সংজ্ঞায়িত করুন। এটি নোড গ্রহণ করবে
-
val :=নোডের মান
-
যদি নোডের বাম অংশ শূন্য না হয়, তাহলে
-
val :=val + recurse(নোডের বামে)
-
-
যদি নোডের ডানদিকে না হয়-শূন্য, তাহলে
-
val :=val + recurse (নোডের ডানদিকে)
-
-
রিটার্ন ভ্যাল
-
মূল পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন -
-
যদি মূল না হয় non−zero, তাহলে
-
রিটার্ন 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