题解 | #二叉搜索树的最近公共祖先#
二叉搜索树的最近公共祖先
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就好。如果不是,要么都在左,或者都在右边,那就遍历,直到在中间为止。这里包含了相等的情况,直接排序都大和都小就可以返回。
基恩士成长空间 419人发布
查看19道真题和解析
