二叉搜索树的公共祖先

发布时间 2023-08-25 20:21:10作者: 小凉拖

力扣(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 }