Skip to content

Commit 2b6b32c

Browse files
committed
More solutions for tree related problems
1 parent a533fe8 commit 2b6b32c

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
package org.sean.tree;public class EvenOddTree {
2+
}

src/main/java/org/sean/tree/Lca.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,4 +85,29 @@ public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
8585
// as a fallback
8686
return root;
8787
}
88+
89+
// solution2:
90+
private TreeNode target;
91+
int lookup(TreeNode node, TreeNode p, TreeNode q) {
92+
if (node == null || target != null) return 0;
93+
94+
int curr = 0;
95+
if (node.val == p.val) curr = 1;
96+
else if (node.val == q.val) curr = 2;
97+
98+
int left = lookup(node.left, p, q);
99+
int right = lookup(node.right, p, q);
100+
101+
if (curr + left + right == 3) {
102+
if (target == null) target = node;
103+
}
104+
return curr + left + right;
105+
}
106+
107+
public TreeNode lowestCommonAncestor0(TreeNode root, TreeNode p, TreeNode q) {
108+
if (root == null || p == root || q == root) return root;
109+
110+
lookup(root, p, q);
111+
return target == null ? root : target;
112+
}
88113
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
package org.sean.tree;public class NodeCleaner {
2+
}

0 commit comments

Comments
 (0)