Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra tất cả các giá trị trong cây có giống nhau hay không trong Python

Giả sử chúng ta có một cây nhị phân, chúng ta phải kiểm tra xem tất cả các nút trong cây có cùng giá trị hay không.

Vì vậy, nếu đầu vào giống như

Chương trình kiểm tra tất cả các giá trị trong cây có giống nhau hay không trong Python

thì đầu ra sẽ là True

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Định nghĩa một hàm giải quyết (). Điều này sẽ bắt rễ và val

  • nếu root là null thì

    • trả về True

  • nếu val không được xác định, thì

    • val:=giá trị của gốc

  • trả về true khi giá trị của gốc giống với val và giải quyết (bên trái của gốc, val) và giải quyết (bên phải của gốc, val) cũng đúng

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

root = TreeNode(5)
root.left = TreeNode(5)
root.right = TreeNode(5)
root.left.left = TreeNode(5)
root.left.right = TreeNode(5)

Đầu ra

True