Day 1.30
二叉搜索树的最近公共祖先
题目
思路
从root
开始遍历二叉树,只有当root
的值在p
和q
的值之间时,root
即为p
和q
的最近公共祖先
代码
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q){
if(p.val>=q.val){
while(!(root.val>=q.val&&root.val<=p.val)){
if(root.val>p.val) root = root.left;
if(root.val<q.val) root = root.right;
}
}else{
while(!(root.val>=p.val&&root.val<=q.val)){
if(root.val>q.val) root = root.left;
if(root.val<p.val) root = root.right;
}
}
return root;
}
}