235. 二叉搜索树的最近公共祖先

题解
本题中的树是特殊的二叉搜索树,所以当本节点的值都大于p、q的值,表示p、q在本节点的左子树,向左移动。当本节点的值都小于p、q的值,表示p、q在本节点的右子树,否则当前节点为p、q中的一个或者刚好为p、q的父节点
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
TreeNode ancestor = root;
while (true) {
if (p.val < ancestor.val && q.val < ancestor.val) {
ancestor = ancestor.left;
} else if (p.val > ancestor.val && q.val > ancestor.val) {
ancestor = ancestor.right;
} else {
break;
}
}
return ancestor;
}
}
本文介绍了一种解决二叉搜索树中寻找两个节点最近公共祖先问题的方法。通过比较节点值,逐步缩小查找范围,最终找到目标节点的最近公共祖先。

195

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



