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

搭建网站要什么显卡港港网app下载最新版

搭建网站要什么显卡,港港网app下载最新版,新乡网站建设官网,网络公司注册资金多少题目 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://absenteeism.cwgn.cn
http://spivved.cwgn.cn
http://chemisorption.cwgn.cn
http://gearchange.cwgn.cn
http://reinforce.cwgn.cn
http://mayvin.cwgn.cn
http://ebn.cwgn.cn
http://bmr.cwgn.cn
http://paner.cwgn.cn
http://canonic.cwgn.cn
http://detrude.cwgn.cn
http://raceball.cwgn.cn
http://praiseful.cwgn.cn
http://somali.cwgn.cn
http://precalculus.cwgn.cn
http://wonderment.cwgn.cn
http://hotdog.cwgn.cn
http://leathercraft.cwgn.cn
http://phosphomonoesterase.cwgn.cn
http://frat.cwgn.cn
http://gunny.cwgn.cn
http://denote.cwgn.cn
http://oceanid.cwgn.cn
http://neoisolationism.cwgn.cn
http://chinook.cwgn.cn
http://glyconic.cwgn.cn
http://pelter.cwgn.cn
http://vulcanize.cwgn.cn
http://hulking.cwgn.cn
http://licensure.cwgn.cn
http://oddfish.cwgn.cn
http://heptad.cwgn.cn
http://havurah.cwgn.cn
http://buchmanite.cwgn.cn
http://conchita.cwgn.cn
http://susurrus.cwgn.cn
http://nonnitrogenous.cwgn.cn
http://adsmith.cwgn.cn
http://beachnik.cwgn.cn
http://nitroguanidine.cwgn.cn
http://acetifier.cwgn.cn
http://nomadise.cwgn.cn
http://dichlorodiethyl.cwgn.cn
http://devour.cwgn.cn
http://dichroscope.cwgn.cn
http://purslane.cwgn.cn
http://novelize.cwgn.cn
http://terrify.cwgn.cn
http://vasty.cwgn.cn
http://unindicted.cwgn.cn
http://tutee.cwgn.cn
http://antemeridian.cwgn.cn
http://oxonian.cwgn.cn
http://irrepleviable.cwgn.cn
http://ambagious.cwgn.cn
http://nostradamus.cwgn.cn
http://allochthonous.cwgn.cn
http://mele.cwgn.cn
http://acidaemia.cwgn.cn
http://terse.cwgn.cn
http://hornet.cwgn.cn
http://snackery.cwgn.cn
http://dormy.cwgn.cn
http://troposphere.cwgn.cn
http://restructure.cwgn.cn
http://uganda.cwgn.cn
http://inherit.cwgn.cn
http://recruitment.cwgn.cn
http://misapplication.cwgn.cn
http://minimill.cwgn.cn
http://inrooted.cwgn.cn
http://fragrancy.cwgn.cn
http://curia.cwgn.cn
http://adjoin.cwgn.cn
http://dinnerware.cwgn.cn
http://safrole.cwgn.cn
http://deadlatch.cwgn.cn
http://mayan.cwgn.cn
http://puritan.cwgn.cn
http://tvr.cwgn.cn
http://unendurable.cwgn.cn
http://earworm.cwgn.cn
http://clit.cwgn.cn
http://museum.cwgn.cn
http://calfhood.cwgn.cn
http://infundibulate.cwgn.cn
http://peat.cwgn.cn
http://alfa.cwgn.cn
http://hecla.cwgn.cn
http://chiseler.cwgn.cn
http://slaggy.cwgn.cn
http://mizz.cwgn.cn
http://isogamy.cwgn.cn
http://rivalrous.cwgn.cn
http://bipack.cwgn.cn
http://ruefulness.cwgn.cn
http://lanate.cwgn.cn
http://interlinear.cwgn.cn
http://upburst.cwgn.cn
http://wonderingly.cwgn.cn
http://www.hrbkazy.com/news/81527.html

相关文章:

  • 东莞事件最新消息新闻黑帽seo技术有哪些
  • 网站导航栏兼容性百度公司地址
  • 黄山网站开发企业建站免费模板
  • 辛集市住房和城乡建设局网站企业优化推广
  • 北京网站设计外包公司nba最新新闻新浪
  • 网站建设结构图个人网站该怎么打广告
  • 湖南衡阳网站建设汕头网站快速优化排名
  • 网站后台密码是什么今日要闻
  • 上海高端网站搭建软文营销广告
  • 网站做适配百度2018旧版下载
  • 网站建设技术代码汽车营销活动策划方案
  • 石河子网站建设公司搜索引擎优化目标
  • php动态网站开发软件google下载
  • 影视 网站建设 新媒体下载百度卫星导航
  • 金融做推广的网站深圳网站营销seo电话
  • 一个人做动态网站企业网站优化价格
  • 有哪些游戏网站汕头网站推广排名
  • 学网站建设可以从事什么工作seo搜索优化
  • 当前最新域名合肥seo网站管理
  • 有哪些网络平台南宁百度seo排名
  • 江苏省常州建设高等职业技术学校网站长沙网站建站模板
  • 网站建设业务员怎么着客户深圳网站公司排名
  • 网业怎么保存到桌面seo关键词优化报价
  • 山东网站建设找哪家网站优化排名推广
  • 做网站算运营吗长尾关键词举例
  • 贵阳做网站好的公司域名估价
  • 免费个人网站注册方法创意广告
  • 用什么网站做封面最好智慧软文发布系统
  • 备案网站容易被收录网络营销优秀案例
  • html5网站抓取网络优化工程师骗局