Skip to content

Commit 9a0cfdd

Browse files
committed
The solutions for problem #1325, #1609
1 parent 2b6b32c commit 9a0cfdd

File tree

2 files changed

+64
-2
lines changed

2 files changed

+64
-2
lines changed
Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,47 @@
1-
package org.sean.tree;public class EvenOddTree {
1+
package org.sean.tree;
2+
3+
import java.util.LinkedList;
4+
import java.util.Queue;
5+
6+
/***
7+
* 1609. Even Odd Tree
8+
*/
9+
public class EvenOddTree {
10+
public boolean isEvenOddTree(TreeNode root) {
11+
if (root == null) return false;
12+
if (root.left == null && root.right == null) return root.val % 2 == 1;
13+
14+
int level = 0;
15+
Queue<TreeNode> queue = new LinkedList<>();
16+
queue.add(root);
17+
18+
while (!queue.isEmpty()) {
19+
int cnt = queue.size();
20+
21+
boolean ascent = level % 2 == 0;
22+
int last = -1;
23+
for (int i = 0; i < cnt; i++) {
24+
TreeNode node = queue.poll();
25+
// System.out.print(" " + node.val);
26+
27+
if (node != null) {
28+
if (ascent) {
29+
if (last > 0 && last >= node.val || node.val % 2 == 0) return false;
30+
last = node.val;
31+
} else {
32+
if (last > 0 && last <= node.val || node.val % 2 == 1) return false;
33+
last = node.val;
34+
}
35+
36+
if (node.left != null) queue.add(node.left);
37+
if (node.right != null) queue.add(node.right);
38+
}
39+
}
40+
++level;
41+
42+
// System.out.println("");
43+
}
44+
45+
return true;
46+
}
247
}
Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,19 @@
1-
package org.sean.tree;public class NodeCleaner {
1+
package org.sean.tree;
2+
3+
/***
4+
* 1325. Delete Leaves With a Given Value
5+
*/
6+
public class NodeCleaner {
7+
public TreeNode removeLeafNodes(TreeNode root, int target) {
8+
if (root == null) return null;
9+
10+
if (root.left == null && root.right == null && root.val == target) return null;
11+
12+
root.left = removeLeafNodes(root.left, target);
13+
root.right = removeLeafNodes(root.right, target);
14+
15+
if (root.left == null && root.right == null && root.val == target) root = null;
16+
17+
return root;
18+
}
219
}

0 commit comments

Comments
 (0)