阅读背景:

在二叉树中找到两个节点的最近公共祖先(C++牛客网)_coolsunxu的博客_在二叉树中找到两个节点的最近公共祖先

来源:互联网 

解题思路:

(1)递归

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    TreeNode* helper(TreeNode *root,int o1,int o2) {
        if(root==nullptr || root->val==o1 || root->val==o2) return root;
        TreeNode *left=helper(root->left,o1,o2);
        TreeNode *right=helper(root->right,o1,o2);
        if(!left) return right;
        if(!right) return left;
        return root;
    }
    int lowestCommonAncestor(TreeNode* root, int o1, int o2) {
        return helper(root,o1,o2)->val;
    }
};/**
 * struct TreeNode {
 *	int



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: