File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ from collections import deque
2+ from typing import Optional
3+
4+
5+ class TreeNode :
6+ def __init__ (self , val = 0 , left = None , right = None ):
7+ self .val = val
8+ self .left = left
9+ self .right = right
10+
11+
12+ class Solution :
13+ def isEvenOddTree (self , root : Optional [TreeNode ]) -> bool :
14+ if not root :
15+ return True
16+ queue = deque ([root ])
17+ level = 0
18+
19+ while queue :
20+ prevVal = None
21+ for _ in range (len (queue )):
22+ node = queue .popleft ()
23+ if (level % 2 == 0 and (node .val % 2 == 0 or (prevVal is not None and node .val <= prevVal ))) or \
24+ (level % 2 == 1 and (node .val % 2 == 1 or (prevVal is not None and node .val >= prevVal ))):
25+ return False
26+ prevVal = node .val
27+ if node .left :
28+ queue .append (node .left )
29+ if node .right :
30+ queue .append (node .right )
31+ level += 1
32+ return True
33+
34+ root = TreeNode (1 )
35+ root .left = TreeNode (10 )
36+ root .left .left = TreeNode (3 )
37+ root .left .left .left = TreeNode (12 )
38+ root .left .left .right = TreeNode (8 )
39+ root .right = TreeNode (4 )
40+ root .right .left = TreeNode (7 )
41+ root .right .left .left = TreeNode (6 )
42+ root .right .right = TreeNode (9 )
43+ root .right .right .right = TreeNode (2 )
44+ print (Solution ().isEvenOddTree (root ))
You can’t perform that action at this time.
0 commit comments