ধরুন আমাদের একটি বাইনারি গাছ আছে, আমাদের পরীক্ষা করতে হবে গাছের সমস্ত নোডের মান একই আছে কি না।
সুতরাং, যদি ইনপুট মত হয়
তাহলে আউটপুট হবে True
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন সমাধান () সংজ্ঞায়িত করুন। এটি রুট গ্রহণ করবে, এবং ভ্যাল
-
যদি রুট শূন্য হয়, তাহলে
-
রিটার্ন ট্রু
-
-
যদি 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))
ইনপুট
root = TreeNode(5) root.left = TreeNode(5) root.right = TreeNode(5) root.left.left = TreeNode(5) root.left.right = TreeNode(5)
আউটপুট
True