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

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

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-17 14:18
门头沟学院 C++
代码飞升_不回私信人...:这种感觉还好。只是你写一个PPT,可能他面的快一点而已。那种让你写什么方案,写什么代码的那种。就没必要去了。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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