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

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

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

    public int lowestCommonAncestor (TreeNode root, int p, int q) {
        if (p < root.val && q < root.val)
            return lowestCommonAncestor(root.left, p, q);
        if (p > root.val && q > root.val)
            return lowestCommonAncestor(root.right, p, q);
        return root.val;
    }
只要在root的值在两个中间,那他就是公共祖先,直接返回val就好。如果不是,要么都在左,或者都在右边,那就遍历,直到在中间为止。这里包含了相等的情况,直接排序都大和都小就可以返回。
全部评论

相关推荐

11-09 12:17
清华大学 C++
out11Man:小丑罢了,不用理会
点赞 评论 收藏
分享
11-27 12:36
已编辑
门头沟学院 前端工程师
Apries:这个阶段来说,很厉害很厉害了,不过写的简历确实不是很行,优势删掉吧,其他的还行
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务