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;
    }
};
相关推荐
ulias2124 小时前
leetcode热题 - 6
linux·算法·leetcode
七颗糖很甜4 小时前
卫星通信遇到“太空天气”会怎样---电离层闪烁对卫星通信的影响
大数据·python·算法
小凡子空白在线学习4 小时前
工作拆分so总结
java·jvm·算法
88号技师4 小时前
2026年2月新锐一区SCI-完整家庭互动优化算法Undivided Family Interaction Algorithm-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
李日灐4 小时前
【优选算法5】位运算经典算法面试题
后端·算法·面试·位运算
汉克老师4 小时前
GESP5级C++考试语法知识(十四、分治算法(一))
算法·归并排序·排序·分治算法·gesp5级·gesp五级
郝学胜-神的一滴4 小时前
干货版《算法导论》03:动态数组 × 链表的极致平衡艺术
java·数据结构·c++·python·算法·链表
风筝在晴天搁浅4 小时前
字节 LeetCode CodeTop 912.排序数组
算法·leetcode
Liangwei Lin4 小时前
LeetCode 48. 旋转图像
算法
AGV算法笔记4 小时前
【具身智能研究进展】RoboBrain 2.5:让机器人真正理解“空间”和“时间”的大脑模型
算法·3d·机器人·具身智能·感知算法