My solution using recursion


  • 1
    V
    class Solution {
    public:
        TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
            if( ( root->val >= p->val && root->val <= q->val )
             || ( root->val >= q->val && root->val <= p->val ) )
                return root;
            
            else if( root->val < p->val && root->val < q->val )
                return lowestCommonAncestor( root->right, p, q );
            
            else
                return lowestCommonAncestor( root->left, p, q );
        }
    };

Log in to reply
 

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