思路:当root非空的时候三种情况
1)两个节点均在root的左子树,此时对root->left递归求解
2)两个节点均在root的右子树,此时对root->right递归求解;
3)两个节点分别位于root的左右子树,此时为root。
代码
TreeNode* lowstCommonAncesstor(TreeNode* root,TreeNode* p,TreeNode* q){
if(root==NULL)
return root;
if(p->val > root->val && q->val > root->val)
return lowstCommonAncesstor(root->right,p,q);
else if(p->val<root->val && q->val<root->val)
return lowstCommonAncesstor(root->left,p,q);
return root;
}