题解 | #二叉搜索树的最近公共祖先#

二叉搜索树的最近公共祖先

https://www.nowcoder.com/practice/d9820119321945f588ed6a26f0a6991f

递归

三种情况:

  • 当前结点值小于q,p,就在当前结点的左子树寻找最近公共祖先。
  • 当前结点值大于q,p,就在当前结点的右子树寻找最近公共祖先。
  • p,q 包含了当前结点值,即 q<=val<=p,或 q>=val>=p,那么公共祖先就是该节点。
class Solution {
  public:
    int lowestCommonAncestor(TreeNode* root, int p, int q) {
        // write code here
        if (p > root->val && q > root->val) {
            return lowestCommonAncestor(root->right, p, q);
        } else if (p < root->val && q < root->val) {
            return lowestCommonAncestor(root->left, p, q);
        }
        return root->val;
    }
};
全部评论

相关推荐

05-12 17:28
已编辑
门头沟学院 硬件开发
ldf李鑫:不说公司名祝你以后天天遇到这样的公司
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务