bool is_exist(TreeNode *root, int target) { if(root == nullptr) return false; if(root->val == target) return true; bool left = is_exist(root->left, target); bool right = is_exist(root->right, target); return left||right; } int res = -1; int lowestCommonAncestor(TreeNode* root, int A, int B) { if(root == nullptr) return -1; int left = lowestCommonAncestor(root->left, A, B); int right = lowestCommonAncestor(root->right, A, B); bool is_A = is_exist(root, A); bool is_B = is_exist(root, B); if(is_A && is_B && res == -1) { res = root->val; } return res; }这个解法我不知道怎么没通过,哪位大佬能帮忙看看是什么原因~ 「求助大佬帮看看这道算法题吧!」给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点。 https://www.nowcoder.com/questionTerminal/e0cc33a83afe4530bcec46eba3325116