C++ Recursive solution


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

  • 0
    H

    class Solution {
    public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q)
    {
    if(root == NULL)
    return root;

        if(p->val < root->val && q->val < root->val)
            return lowestCommonAncestor(root->left, p, q);
        else if(p->val > root->val && q->val > root->val)
            return lowestCommonAncestor(root->right, p, q);
        else
            return root;
    }
    

    };


Log in to reply
 

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