剑指 Offer 68 - I. 二叉搜索树的最近公共祖先

思路
因为是二叉搜索树,因此可以判断起来比较容易,节点只可能在左右子树
如果都小于根结点,那么就查看是否在左子树
如果都大于根结点,那么就查看是否在右子树
否则,直接返回根节点
代码
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(p.val<root.val&&q.val<root.val){
return lowestCommonAncestor(root.left,p,q);
}
if(p.val>root.val&&q.val>root.val){
return lowestCommonAncestor(root.right,p,q);
}
return root;
}
本文介绍了如何利用二叉搜索树特性,通过递归判断节点值与目标值的关系,快速定位最近公共祖先。核心思路是利用BST的性质,将查找范围缩小到左右子树,直到找到共同祖先。
333

被折叠的 条评论
为什么被折叠?



