Input: root = [1,10,4,3,null,7,9,12,8,6,null,null,2]Output: trueExplanation: The node values on each level are:Level 0: [1]Level 1: [10,4]Level 2: [3,7,9]Level 3: [12,8,6,2]Since levels 0 and 2 are all odd and increasing and levels 1 and 3 are all even and decreasing, the tree is Even-Odd.
Input: root = [5,4,2,3,3,7]Output: falseExplanation: The node values on each level are:Level 0: [5]Level 1: [4,2]Level 2: [3,3,7]Node values in level 2 must be in strictly increasing order, so the tree is not Even-Odd.
Input: root = [5,9,1,3,5,7]Output: falseExplanation: Node values in the level 1 should be even integers.
from leetcode_py import TreeNodeclass Solution: # Time: O(n) # Space: O(w) where w is the max level width def is_even_odd_tree(self, root: TreeNode[int] | None) -> bool: if root is None: return False level = [root] depth = 0 while level: prev = None for node in level: val = node.val if depth % 2 == 0: if val % 2 == 0: return False if prev is not None and val <= prev: return False else: if val % 2 == 1: return False if prev is not None and val >= prev: return False prev = val level = [child for node in level for child in (node.left, node.right) if child] depth += 1 return True