একটি বাইনারি ট্রি দেওয়া থাকলে, তার সব নোডের মান একই কিনা তা যাচাই করতে হবে। উদাহরণস্বরূপ, সব নোডের মান ৫ হলে আউটপুট 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 = ট্রির উচ্চতা)।