侧边栏壁纸
博主头像
Hope博主等级

努力赚钱的工科研究生

  • 累计撰写 362 篇文章
  • 累计创建 129 个标签
  • 累计收到 5 条评论
标签搜索

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

Hope
2022-03-20 / 0 评论 / 0 点赞 / 272 阅读 / 592 字
温馨提示:
本文最后更新于 2022-03-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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

思路:

按照二叉搜索树的性质,左儿子小于等于 根节点 ,右儿子大于等于 根节点,所以,如果满足这条性质,根节点就是答案,否则,如果两个点都在左边,递归左子树,否则递归右子树。

代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */

class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        //二叉搜索树
        //p 左儿子 q 右儿子
        if(p->val > q->val) swap(p,q);
        if(p->val <= root->val && q->val >= root->val) return root;
        if(q->val < root->val) return lowestCommonAncestor(root->left,p,q);
        return lowestCommonAncestor(root->right,p,q);
    }
};
0

评论区