Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Definition for a binary tree node.
- # class TreeNode:
- # def __init__(self, val=0, left=None, right=None):
- # self.val = val
- # self.left = left
- # self.right = right
- def traverse(root) -> list[list[int]]:
- nodes: list[list[int]] = []
- def helper(node: Optional[TreeNode], level: int):
- if node:
- if nodes.__len__() == level:
- nodes.append([])
- if node.left:
- nodes[level].append(node.left.val)
- helper(node.left, level + 1)
- if node.right:
- nodes[level].append(node.right.val)
- helper(node.right, level + 1)
- helper(root, 0);
- return nodes
- class Solution:
- def isEvenOddTree(self, root: Optional[TreeNode]) -> bool:
- nodes: list[list[int]] = []
- if root:
- nodes = [[root.val]] + traverse(root)
- nodes.pop()
- else:
- return False
- for i in range(nodes.__len__()):
- level: list[int] = nodes[i]
- if i % 2:
- if level[0] % 2:
- return False
- for j in range(level.__len__() - 1):
- if level[j] <= level[j + 1] or level[j] % 2 or level[j + 1] % 2:
- return False
- else:
- if level[0] % 2 == 0:
- return False
- for j in range(level.__len__() - 1):
- if level[j] >= level[j + 1] or level[j] % 2 == 0 or level[j + 1] % 2 == 0:
- return False
- return True
Advertisement
Add Comment
Please, Sign In to add comment