[LeetCode][LCR 193] 二叉搜索树的最近共同祖先
最编程
2024-03-14 22:13:57
...
class Solution {
public:
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if(p->val > q->val) swap(p, q); // 保证 p 的值小于等于 q 的值
if(p->val <= root->val && q->val >= root->val) return root; // 如果 p、q 分别在 root 的两侧,说明 root 就是最近公共祖先
if(q->val < root->val) return lowestCommonAncestor(root->left, p, q); // 如果 p、q 都在 root 的左侧,则递归左子树
if(p->val > root->val) return lowestCommonAncestor(root->right, p, q); // 如果 p、q 都在 root 的右侧,则递归右子树
return nullptr; // 默认情况下返回空指针
}
};