代码随想录Day22|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中节点

文章目录

  • 235.二叉搜索树的最近公共祖先
  • 701.二叉搜索树中的插入操作
  • 450.删除二叉搜索树中节点

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

文章讲解:代码随想录 (programmercarl.com)

题目链接:235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode)

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

递归

class Solution {
   
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
   
        if (root == NULL) return root;
        if (root->val > p->val && root->val > q->val) {
   
            TreeNode* left = lowestCommonAncestor(root->left, p, q);
            if (left != NULL) return left;
        } 
        if (root->val < p->val && root->val < q->val) {
   
            TreeNode* right = lowestCommonAncestor(root->right, p, q);
            if (right != NULL) return right;
        } 
        

你可能感兴趣的:(算法,leetcode,数据结构)