Even Odd Tree LeetCode solution in Python
1from collections import deque23# Runtime:838ms 44.05% || Memory: 40.8mb 57.22%4# O(n) || O(h); where h is the height of the tree567class Solution:8def isEvenOddTree(self, root: Optional[TreeNode]) -> bool:9if not root:10return False1112level = 013evenOddLevel = {0: 1, 1: 0}14queue = deque([root])1516while queue:17prev = 018for _ in range(len(queue)):19currNode = queue.popleft()20comparison = {0: prev < currNode.val, 1: prev > currNode.val}21if currNode.val % 2 != evenOddLevel[level % 2]:22return False23else:24if prev != 0 and comparison[level % 2]:25prev = currNode.val26elif prev == 0:27prev = currNode.val28else:29return False3031if currNode.left:32queue.append(currNode.left)3334if currNode.right:35queue.append(currNode.right)3637level += 13839return True