struct TreeNode *find(struct TreeNode* root,int max,int min)
{
if(min<root->val&&max>root->val) return root;
else if(min==root->val||max==root->val) return root;
else if(max<root->val) return find(root->left,max,min);
else return find(root->right,max,min);
}
int lowestCommonAncestor(struct TreeNode* root, int p, int q ) {
int max=p>q?p:q,min=p<q?p:q;
return find(root,max,min)->val;
}

京公网安备 11010502036488号