even-odd-tree.py (1208B)
1 # even odd tree 2 3 # is only true if even layers are ascending order and odd 4 # and odd layers are even nums and descending order 5 6 # 233ms beats 53.29% 7 # 60.06MB Beats 5.76% 8 9 10 class Solution(object): 11 def isEvenOddTree(self, root): 12 lis = recurse(root, 0, []) 13 isEven = False 14 layer = 0 15 for i in lis: 16 isEven = not isEven 17 index = 0 18 for v in i: 19 if isEven: 20 if v % 2 == 0: 21 return False 22 if index > 0: 23 if lis[layer][index - 1] >= v: 24 return False 25 else: 26 if v % 2 != 0: 27 return False 28 if index > 0: 29 if lis[layer][index - 1] <= v: 30 return False 31 index += 1 32 layer += 1 33 return True 34 35 36 def recurse(root, layer, lis): 37 if len(lis) <= layer: 38 lis.append([]) 39 lis[layer].append(root.val) 40 if root.left is not None: 41 recurse(root.left, layer + 1, lis) 42 if root.right is not None: 43 recurse(root.right, layer + 1, lis) 44 return lis