236. 二叉树的最近公共祖先

题目描述:

主要思路:

利用dfs遍历树,依次判断节点是否为公共祖先节点。

cpp 复制代码
class Solution {
public:
    TreeNode* ans;
    bool dfs(TreeNode* root, TreeNode* p, TreeNode* q)
    {
        if(!root)
            return false;
        bool l=dfs(root->left,p,q);
        bool r=dfs(root->right,p,q);
        if(l&&r||((l||r)&&(root->val==p->val||root->val==q->val)))
            ans=root;
        if(l|r|root->val==p->val|root->val==q->val)
            return true;
        else
            return false;
    }
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        dfs(root,p,q);
        return ans;
    }
};
相关推荐
Ayanami_Reii7 分钟前
进阶数据结构应用-一个简单的整数问题2(Fenwick-Tree 解法)
数据结构·算法·前缀和·差分·树状数组·fenwick tree
老黄编程8 分钟前
点云生成深度图的原理及算法步骤和参数详细说明
数学·算法·点云·深度图
老黄编程11 分钟前
点云SIFT3D特征点云原理、算法描述及参数详细说明
算法·3d·sift3d
老黄编程15 分钟前
3DHarris特征提取算法描述及参数详细说明
数学·算法·几何·3dharris特征提取
fruge18 分钟前
技术面试复盘:高频算法题的前端实现思路(防抖、节流、深拷贝等)
前端·算法·面试
希望有朝一日能如愿以偿20 分钟前
力扣每日一题:使数组和能被p整除
数据结构·算法·leetcode
Christo323 分钟前
AAAI-2013《Spectral Rotation versus K-Means in Spectral Clustering》
人工智能·算法·机器学习·数据挖掘·kmeans
葵花楹25 分钟前
【补题】【atcoderabc434】【codeforces1067】
算法
roman_日积跬步-终至千里32 分钟前
【模式识别与机器学习】AdaBoost算法:集成学习的基本原理与AdaBoost算法的应用
算法·机器学习·集成学习
mit6.82435 分钟前
中位数贪心|前缀和_距离和ret=l+r_1
算法