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

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function lowestCommonAncestor(root: TreeNode | null, p: TreeNode | null, q: TreeNode | null): TreeNode | null {
let result = null
while(root !== null) {
if (root.val > p.val && root.val > q.val) {
root = root.left
} else if(root.val < p.val && root.val < q.val) {
root = root.right
} else {
result = root
break
}
}
return result
}