commit 8bc31b4264fee36780ace2cf92fffb9cf4d18113
parent 1baf62c0c3ceadbf511a3eb3e320612d853e4f4b
Author: AndrewLockVI <andrewlaack1@gmail.com>
Date: Wed, 28 Feb 2024 20:26:12 -0600
Even odd tree
Diffstat:
1 file changed, 43 insertions(+), 0 deletions(-)
diff --git a/even-odd-tree/even-odd-tree.py b/even-odd-tree/even-odd-tree.py
@@ -0,0 +1,43 @@
+#even odd tree
+
+#is only true if even layers are ascending order and odd
+#and odd layers are even nums and descending order
+
+#233ms beats 53.29%
+#60.06MB Beats 5.76%
+
+class Solution(object):
+ def isEvenOddTree(self, root):
+ lis = recurse(root, 0, [])
+ isEven = False
+ layer = 0
+ for i in lis:
+ isEven = not isEven
+ index = 0
+ for v in i:
+ if isEven:
+ if v % 2 == 0:
+ return False
+ if index > 0:
+ if lis[layer][index - 1] >= v:
+ return False
+ else:
+ if v % 2 != 0:
+ return False
+ if index > 0:
+ if lis[layer][index - 1] <= v:
+ return False
+ index += 1
+ layer += 1
+ return True
+
+def recurse(root, layer, lis):
+ if len(lis) <= layer:
+ lis.append([])
+ lis[layer].append(root.val)
+ if root.left is not None:
+ recurse(root.left, layer + 1, lis)
+ if root.right is not None:
+ recurse(root.right, layer + 1, lis)
+ return lis
+