Leetcode 236. Lowest Common Ancestor of a Binary Tree
8/14/26Less than 1 minute
Clarification
Brute-force Approach
Optimization
Code
class Solution {
TreeNode lca = null;
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
seen(root, p, q);
return lca;
}
private int seen(TreeNode root, TreeNode p, TreeNode q) {
if (root == null || lca != null) return 0;
int left = seen(root.left, p, q);
int right = seen(root.right, p, q);
int seen = left + right +
(root == p ? 1 : 0) +
(root == q ? 1 : 0);
if (lca == null && seen == 2) lca = root;
return seen;
}
}