1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| class Solution { public boolean isEvenOddTree(TreeNode root) { LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); boolean b = true; int level = 0; while (!queue.isEmpty()){ int n = queue.size(); int tmp = Integer.MAX_VALUE; int tmp2 = Integer.MIN_VALUE; for (int i = 0; i < n; i++) { TreeNode node = queue.poll(); if (level % 2 == 0){ if (node.val % 2 == 0){ b = false; }
if (node.val <= tmp2){ b = false; } tmp2 = node.val; }else { if (node.val % 2 != 0){ b = false; }
if (node.val >= tmp){ b = false; } tmp = node.val; }
if (!b){ return b; }
if(node.left != null){ queue.offer(node.left); } if (node.right != null){ queue.offer(node.right); } } level++; } return b; } }
|