力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
1 TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { 2 if(root==nullptr||root==p||root==q)return root; 3 //如果该结点比两个结点都大或则都小,则只需要搜索右子树或左子树,而且只要找到某个结点的值是p和q其中的一个就停止搜索,层层向上返回该结点 4 if(p->val<root->val&&q->val<root->val) return lowestCommonAncestor(root->left,p,q); 5 else if(p->val>root->val&&q->val>root->val) return lowestCommonAncestor(root->right,p,q);
//如果该结点介于两者中间则直接返回这个结点 6 else return root; 7 8 }