
最低共同祖先,肯定值处于两者之间,而且是第一个这样的节点
所以就像二分搜索一样,当前节点值都大于p和q,则向左走,反之向右走
当碰到介于两者之间时,说明当前节点就是我们要找的
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(root.val > p.val && root.val > q.val)
return lowestCommonAncestor(root.left, p, q);
else if(root.val < p.val && root.val < q.val)
return lowestCommonAncestor(root.right, p, q);
else
return root;
}
}
来源:https://www.cnblogs.com/hwd9654/p/11361491.html