题目描述:
主要思路:
利用dfs遍历树,依次判断节点是否为公共祖先节点。
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;elsereturn false;}TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {dfs(root,p,q);return ans;}
};