2331. Evaluate Boolean Binary Tree Solution 1 (time O(n), space O(1)) # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object): def evaluateTree(self, root): """ :type root: Optional[TreeNode] :rtype: bool """ if root.left is None and root.right is None: return root.val == 1 if root.val == 2: return self.evaluateTree(root.left) | self.evaluateTree(root.right) return self.evaluateTree(root.left) & self.evaluateTree(root.right)