My recursive c++ solution


  • 0
    M
     TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
            if(p->val > root->val && q->val < root->val)
            {
                return root;
            }
            if(p->val < root->val && q->val > root->val)
            {
                return root;
            }
            if( p->val == root->val || q->val == root->val)
                return root;
                
            if( p->val < root->val && q->val < root->val)
                return lowestCommonAncestor(root->left, p, q);
            if( p->val > root->val && q->val > root->val)
                return lowestCommonAncestor(root->right, p, q);
        }

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.