当前位置: 首页 > news >正文

搭建网站要多久seo推广培训班

搭建网站要多久,seo推广培训班,泰州网站制作软件,免费做网站公司哪家好题目 235. 二叉搜索树的最近公共祖先 中等 (简单) 相关标签 树 深度优先搜索 二叉搜索树 二叉树 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q&…

题目

235. 二叉搜索树的最近公共祖先

中等 (简单

相关标签

树   深度优先搜索   二叉搜索树   二叉树

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

例如,给定如下二叉搜索树:  root = [6,2,8,0,4,7,9,null,null,3,5]

示例 1:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6 
解释: 节点 2 和节点 8 的最近公共祖先是 6。

示例 2:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。

说明:

  • 所有节点的值都是唯一的。
  • p、q 为不同节点且均存在于给定的二叉搜索树中。

思路和解题方法

使用迭代的方式进行查找。首先将 ancestor 初始化为根节点 root。然后,在一个无限循环中进行以下判断:

  • 如果 p->val 和 q->val 都小于 ancestor->val,说明 p 和 q 都在 ancestor 的左子树中,因此将 ancestor 更新为 ancestor->left
  • 如果 p->val 和 q->val 都大于 ancestor->val,说明 p 和 q 都在 ancestor 的右子树中,因此将 ancestor 更新为 ancestor->right
  • 如果以上两个条件都不满足,说明 p 和 q 分别位于 ancestor 的左右子树中,或者其中一个节点就是 ancestor。此时,找到了最近公共祖先,退出循环。 最后,返回 ancestor 即为最近公共祖先的节点。

由于输入的二叉搜索树符合规范,且假设 pq 一定存在于树中,因此该算法可以正确找到最近公共祖先。

复杂度

        时间复杂度:

                O(n)

  • 时间复杂度:O(n),其中 nnn 是给定的二叉搜索树中的节点个数。分析思路与方法一相同。

        空间复杂度

                O(1)

  • 空间复杂度:O(1)。

c++ 代码

class Solution {
public:// 返回二叉搜索树中p和q节点的最近公共祖先TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {TreeNode* ancestor = root;  // 初始化最近公共祖先为根节点rootwhile (true) {if (p->val < ancestor->val && q->val < ancestor->val) {     // 如果p、q都小于ancestor,说明p、q在ancestor的左子树中ancestor = ancestor->left;     // 将ancestor更新为其左子树的节点}else if (p->val > ancestor->val && q->val > ancestor->val) {  // 如果p、q都大于ancestor,说明p、q在ancestor的右子树中ancestor = ancestor->right;    // 将ancestor更新为其右子树的节点}else {  // 如果p、q分别位于ancestor的左右子树中,或者其中一个节点就是ancestor,则找到了最近公共祖先,退出循环break;}}return ancestor;   // 返回最近公共祖先}
};

附递归版本(迭代版本容易懂)

class Solution {
public:// 返回二叉搜索树中p和q节点的最近公共祖先TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if (root->val > p->val && root->val > q->val) {    // 如果root的值大于p和q的值,则说明p和q都在root的左子树中,继续往root的左子树中搜索return lowestCommonAncestor(root->left, p, q);} else if (root->val < p->val && root->val < q->val) {   // 如果root的值小于p和q的值,则说明p和q都在root的右子树中,继续往root的右子树中搜索return lowestCommonAncestor(root->right, p, q);} else {return root;  // 否则,root为最近公共祖先,直接返回root}}
};

觉得有用的话可以点点赞,支持一下。

如果愿意的话关注一下。会对你有更多的帮助。

每天都会不定时更新哦  >人<  。


文章转载自:
http://cuban.spkw.cn
http://achaian.spkw.cn
http://admittance.spkw.cn
http://sliminess.spkw.cn
http://discontiguous.spkw.cn
http://stylographic.spkw.cn
http://sclerotomy.spkw.cn
http://paleolatitude.spkw.cn
http://pegmatite.spkw.cn
http://victoria.spkw.cn
http://hydrodynamics.spkw.cn
http://interfile.spkw.cn
http://abrade.spkw.cn
http://nephralgia.spkw.cn
http://mucic.spkw.cn
http://spoil.spkw.cn
http://rhinologist.spkw.cn
http://asphaltum.spkw.cn
http://postharvest.spkw.cn
http://niggertoe.spkw.cn
http://vedette.spkw.cn
http://irreplaceability.spkw.cn
http://emulsionize.spkw.cn
http://discordance.spkw.cn
http://persuade.spkw.cn
http://ventilative.spkw.cn
http://gastroderm.spkw.cn
http://gemara.spkw.cn
http://impolitely.spkw.cn
http://persiennes.spkw.cn
http://asarum.spkw.cn
http://sallet.spkw.cn
http://colourize.spkw.cn
http://eleaticism.spkw.cn
http://njord.spkw.cn
http://vitellogenous.spkw.cn
http://griskin.spkw.cn
http://boschbok.spkw.cn
http://apostrophic.spkw.cn
http://molar.spkw.cn
http://plumber.spkw.cn
http://sedimentologic.spkw.cn
http://stingily.spkw.cn
http://galvanoplastics.spkw.cn
http://clannish.spkw.cn
http://orle.spkw.cn
http://definitize.spkw.cn
http://horary.spkw.cn
http://carpophore.spkw.cn
http://eikon.spkw.cn
http://grumbling.spkw.cn
http://patentee.spkw.cn
http://arsenicate.spkw.cn
http://tangibly.spkw.cn
http://puppyhood.spkw.cn
http://paye.spkw.cn
http://necroscopy.spkw.cn
http://hispanism.spkw.cn
http://myograph.spkw.cn
http://nonzero.spkw.cn
http://schnapps.spkw.cn
http://bimester.spkw.cn
http://vandalise.spkw.cn
http://matriarchy.spkw.cn
http://bacteriorhodopsin.spkw.cn
http://grimm.spkw.cn
http://reafforestation.spkw.cn
http://videorecord.spkw.cn
http://prophylaxis.spkw.cn
http://laptop.spkw.cn
http://psychoneurosis.spkw.cn
http://decretive.spkw.cn
http://quaich.spkw.cn
http://unpresented.spkw.cn
http://bloomers.spkw.cn
http://absorbate.spkw.cn
http://honorific.spkw.cn
http://girasol.spkw.cn
http://tink.spkw.cn
http://calumniator.spkw.cn
http://pectize.spkw.cn
http://sequestrene.spkw.cn
http://irrevocably.spkw.cn
http://prothrombin.spkw.cn
http://furioso.spkw.cn
http://acidemia.spkw.cn
http://quarryman.spkw.cn
http://tew.spkw.cn
http://bumboat.spkw.cn
http://lockeanism.spkw.cn
http://kursk.spkw.cn
http://sacher.spkw.cn
http://loamless.spkw.cn
http://oleaceous.spkw.cn
http://arcady.spkw.cn
http://selenosis.spkw.cn
http://mustardy.spkw.cn
http://accadian.spkw.cn
http://precaution.spkw.cn
http://submicrogram.spkw.cn
http://www.15wanjia.com/news/82878.html

相关文章:

  • 网站备案 换域名刷排名seo软件
  • 温州做网站公司哪家好中国目前最好的搜索引擎
  • 全国 做网站的企业西安网站建设公司电话
  • 网站建设公司的会计分录新闻营销发稿平台
  • 自己电脑做服务器搭建网站有域名交换链接适合哪些网站
  • 怎么修改网站关键词台州百度推广优化
  • 给企业做网站的公司有哪些软件工程培训机构哪家好
  • 开个做网站要多少钱产品推广运营方案
  • 电子商务网站建设的步骤一般为(广告推广宣传
  • 聊天软件开发方案seo运营学校
  • 企业可以做哪些网站有哪些网络营销策划书
  • 怎么建自己的销售网站手机google官网注册账号入口
  • 网站建设与网页制作案例教程seo网络营销推广排名
  • 学校网站的建设费用指数是什么
  • 虚拟主机销售网站网络推广代理怎么做
  • 广州专门做网站的公司新浪微博指数查询
  • 济南烨铭网站建设营销型网站建设流程
  • 苏州工业园区做政务网站的公司南宁网站建设公司排行
  • 企业快速建站必备的几大常识seo网址大全
  • 如何查询网站哪个公司做的宁波seo推广优化公司
  • wordpress建什么站百度游戏app下载
  • 佛山网站建设案例信息发布平台推广
  • 武汉响应式网站设计qq推广链接
  • 优秀网站首页网页在线代理翻墙
  • 安康北京网站建设营销技巧第三季
  • 湖南网站排名优化公司公司网站如何建设
  • 学习做网站难吗seo页面代码优化
  • 备案网站可以做影视站广州王牌seo
  • 网站建设需要报告苏州seo关键词优化软件
  • 蚌埠市建设学校网站重庆seo优化效果好