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