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

পাইথনে বাইনারি ট্রিয়ের সব নোডের মান একই কিনা যাচাই করা

একটি বাইনারি ট্রি দেওয়া থাকলে, তার সব নোডের মান একই কিনা তা যাচাই করতে হবে। উদাহরণস্বরূপ, সব নোডের মান ৫ হলে আউটপুট True।

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

  • বেস কেস: root is None → True
  • প্রথম কলেই val প্যারামিটার হিসেবে রুটের মান নেওয়া হয়।
  • প্রতিটি নোডের জন্য: node.val == val এবং বাম ও ডান সাবট্রি রিকার্সিভলি চেক।

পাইথন কোড

class TreeNode:
    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

class Solution:
    def solve(self, root, val=None):
        if not root:
            return True
        if val is None:
            val = root.val
        return (root.val == val and
                self.solve(root.left, val) and
                self.solve(root.right, val))

# টেস্ট
ob = Solution()
root = TreeNode(5)
root.left = TreeNode(5)
root.right = TreeNode(5)
root.left.left = TreeNode(5)
root.left.right = TreeNode(5)
print(ob.solve(root))  # True

টাইম কমপ্লেক্সিটি: O(n), স্পেস: O(h) (h = ট্রির উচ্চতা)।

  1. পাইথনে দুটি বাইনারি ট্রির লিফ সিকোয়েন্স মিল কিনা যাচাই

  2. পাইথনে বাইনারি ট্রি সিমেট্রিক (সমমিতি) কিনা যাচাই করা

  3. পাইথনে ট্রির ইনঅর্ডার সিকোয়েন্স প্যালিনড্রোম কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে বাইনারি ট্রি BST কিনা যাচাই করার প্রোগ্রাম