Skip to content

Commit ef94e1b

Browse files
add a solution for 1644
1 parent 3fa425a commit ef94e1b

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/main/java/com/fishercoder/solutions/_1644.java

+22
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,26 @@ private TreeNode dfs(TreeNode root, TreeNode p, TreeNode q) {
4646
return left != null ? left : right;
4747
}
4848
}
49+
50+
public static class Solution2 {
51+
int found = 0;
52+
53+
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
54+
TreeNode lca = lca(root, p, q);
55+
return found == 2 ? lca : null;
56+
}
57+
58+
private TreeNode lca(TreeNode root, TreeNode p, TreeNode q) {
59+
if (root == null) {
60+
return root;
61+
}
62+
TreeNode left = lca(root.left, p, q);
63+
TreeNode right = lca(root.right, p, q);
64+
if (root == p || root == q) {
65+
found++;
66+
return root;
67+
}
68+
return left == null ? right : right == null ? left : root;
69+
}
70+
}
4971
}

0 commit comments

Comments
 (0)