package com.interview.tree; /** * Date 04/27/2016 * @author Tushar Roy * * Find lowest common ancestor in binary tree. * * Time complexity O(n) * Space complexity O(h) */ public class LowestCommonAncestorInBinaryTree { public Node lca(Node root, Node n1, Node n2){ if(root == null){ return null; } if(root == n1 || root == n2){ return root; } Node left = lca(root.left, n1, n2); Node right = lca(root.right, n1, n2); if(left != null && right != null){ return root; } return left != null ? left : right; } }