কম্পিউটার

পাতা ব্যতীত প্রতিটি নোডের মান পাইথনে বাচ্চাদের মূল্যের যোগফল কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের একটি বাইনারি গাছ আছে, আমাদের দেখতে হবে পাতা ছাড়া গাছের প্রতিটি নোডের জন্য এর মান তার বাম সন্তানের মানের সমষ্টি এবং ডান সন্তানের মানের সমান কিনা।

সুতরাং, যদি ইনপুট মত হয়

পাতা ব্যতীত প্রতিটি নোডের মান পাইথনে বাচ্চাদের মূল্যের যোগফল কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

তাহলে আউটপুট হবে True

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি ফাংশন dfs() সংজ্ঞায়িত করুন। এটি রুট নেবে

  • যদি রুট শূন্য হয়, তাহলে

    • রিটার্ন ট্রু

  • যদি রুটের বাম অংশ নাল হয় এবং রুটের ডানদিকে শূন্য হয়, তাহলে

    • রিটার্ন ট্রু

  • বাম :=0

  • যদি মূলের বাম অংশ শূন্য না হয়, তাহলে

    • left :=রুটের বাম মান

  • ডান :=0

  • যদি মূলের ডানদিকে শূন্য না হয়, তাহলে

    • right :=রুটের ডানের মান

  • (বাম + ডান রুটের মান হিসাবে একই) এবং dfs (রুটের বাম) সত্য এবং dfs (রুটের ডানদিকে) সত্য হলে

  • প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -

  • dfs(root)

    ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class TreeNode:
   def __init__(self, data, left = None, right = None):
      self.val = data
      self.left = left
      self.right = right
class Solution:
   def solve(self, root):
      def dfs(root):
         if root == None:
            return True
         if root.left == None and root.right == None:
            return True
         left = 0
         if root.left:
            left = root.left.val
         right = 0
         if root.right:
            right = root.right.val
         return (left + right == root.val) and dfs(root.left) and
      dfs(root.right)
return dfs(root)
ob = Solution()
root = TreeNode(18)
root.left = TreeNode(8)
root.right = TreeNode(10)
root.left.left = TreeNode(3)
root.left.right = TreeNode(5)
print(ob.solve(root))

ইনপুট

root = TreeNode(18) root.left = TreeNode(8) root.right = TreeNode(10)
root.left.left = TreeNode(3) root.left.right = TreeNode(5)

আউটপুট

True

  1. পাইথনে একটি বাইনারি ট্রি বিএসটি কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  2. পাইথনে একটি বাইনারি গাছ সম্পূর্ণ কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  3. প্রদত্ত গ্রাফটি পাইথনে দ্বিপক্ষীয় কি না তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. একটি মান বিএসটি-তে আছে কিনা পাইথনে নেই তা পরীক্ষা করার জন্য প্রোগ্রাম