递归搜索,当 root的值在 q p 之间时则为它们的公共祖先,否则分别向左子树和右子树寻找。
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(root.val >= p.val && root.val <= q.val || root.val <= p.val && root.val >= q.val){
return root;
}
if(root.val > q.val ){
return lowestCommonAncestor(root.left,p,q);
}else{
return lowestCommonAncestor(root.right,p,q);
}
}
}