একটি বাইনারি ট্রি দেওয়া থাকলে, তার সব নোডের মানের যোগফল বের করতে হবে।
উদাহরণ: রুট=২, ডান=৪, ৪-এর বাম=৩, ডান=৫ → যোগফল = ২+৪+৩+৫ = ১৪।
রিকার্সিভ সমাধান
recurse(node)ফাংশন: নোডের মান + বাম সাবট্রির যোগফল + ডান সাবট্রির যোগফল।- বেস কেস:
node is None→ ০। - মূল ফাংশন:
root is Noneহলে ০, অন্যথায়recurse(root)।
পাইথন কোড
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, None, TreeNode(4, TreeNode(3), TreeNode(5)))
print(ob.solve(root)) # 14
টাইম কমপ্লেক্সিটি: O(n), স্পেস: O(h)। এটি ট্রি সমস্যার সবচেয়ে বেসিক রিকার্সিভ প্যাটার্ন।