কম্পিউটার টিউটোরিয়াল

পাইথনে বাইনারি ট্রির সব নোডের মান যোগফল বের করা

একটি বাইনারি ট্রি দেওয়া থাকলে, তার সব নোডের মানের যোগফল বের করতে হবে।

উদাহরণ: রুট=২, ডান=৪, ৪-এর বাম=৩, ডান=৫ → যোগফল = ২+৪+৩+৫ = ১৪।

রিকার্সিভ সমাধান

  • 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)। এটি ট্রি সমস্যার সবচেয়ে বেসিক রিকার্সিভ প্যাটার্ন।

  1. পাইথনে বাইনারি ট্রিতে প্রতিটি ডায়াগোনাল পথের উপাদানগুলোর যোগফল খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  3. লিস্টের কিউমুলেটিভ সাম বের করার পাইথন প্রোগ্রাম

  4. পাইথনে লিস্টের এলিমেন্টগুলোর যোগফল বের করা