phatboislym

Untitled

Feb 29th, 2024
1,285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | Source Code | 0 0
  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. #     def __init__(self, val=0, left=None, right=None):
  4. #         self.val = val
  5. #         self.left = left
  6. #         self.right = right
  7.  
  8. def traverse(root) -> list[list[int]]:
  9.     nodes: list[list[int]] = []
  10.  
  11.     def helper(node: Optional[TreeNode], level: int):
  12.         if node:
  13.             if nodes.__len__() == level:
  14.                 nodes.append([])
  15.  
  16.         if node.left:
  17.             nodes[level].append(node.left.val)
  18.             helper(node.left, level + 1)
  19.        
  20.         if node.right:
  21.             nodes[level].append(node.right.val)
  22.             helper(node.right, level + 1)
  23.  
  24.     helper(root, 0);
  25.  
  26.     return nodes
  27.  
  28.  
  29. class Solution:
  30.     def isEvenOddTree(self, root: Optional[TreeNode]) -> bool:
  31.         nodes: list[list[int]] = []
  32.  
  33.         if root:
  34.             nodes = [[root.val]] + traverse(root)
  35.             nodes.pop()
  36.         else:
  37.             return False
  38.  
  39.         for i in range(nodes.__len__()):
  40.             level: list[int] = nodes[i]
  41.  
  42.             if i % 2:
  43.                 if level[0] % 2:
  44.                     return False
  45.                 for j in range(level.__len__() - 1):
  46.                     if level[j] <= level[j + 1] or level[j] % 2 or level[j + 1] % 2:
  47.                         return False
  48.             else:
  49.                 if level[0] % 2 == 0:
  50.                     return False
  51.                 for j in range(level.__len__() - 1):
  52.                     if level[j] >= level[j + 1] or level[j] % 2 == 0 or level[j + 1] % 2 == 0:
  53.                         return False
  54.         return True    
Advertisement
Add Comment
Please, Sign In to add comment