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

找钢网网站建设博客

找钢网网站建设,博客,wordpress有置顶就置顶没有就其他,wordpress 安装 乱码在树结构中,祖先指的是一个节点的父节点或更高层级的父节点。公共祖先是指同时为节点p和q的祖先的节点。最近公共祖先(LCA)则是指在所有公共祖先中,距离p和q最近的那个节点。寻找LCA的方法可以按以下情况进行分析: 当…

       

        在树结构中,祖先指的是一个节点的父节点或更高层级的父节点。公共祖先是指同时为节点p和q的祖先的节点。最近公共祖先(LCA)则是指在所有公共祖先中,距离p和q最近的那个节点。寻找LCA的方法可以按以下情况进行分析:

  1. 当前节点为空节点
  2. 当前节点就是p节点
  3. 当前节点就是q节点
  4. 当前节点既不是p也不是q,且p和q位于其子树中:
    • p和q分别位于左右子树
    • p和q都在左子树
    • p和q都在右子树
    • p和q都不在子树中

具体解决方案如下:

情况1:空节点不可能是p和q的LCA。

情况2和3:如果当前节点是p或q,直接返回当前节点。因为若当前节点是p,而q是其子节点,则p就是LCA(节点可以是自身的LCA)。若q不在p的子树中,则无需继续在p的子树中搜索。

情况4.1:当前节点就是LCA。因为如果LCA在左子树,则不会是q的祖先;在右子树则不会是p的祖先;在上层节点则不满足"最近"的条件。

情况4.2:LCA必定在左子树中,因此递归搜索左子树。

情况4.3和4.4可以合并处理:若p和q都在右子树,则递归搜索右子树;若都不在子树中,则右子树也为空。        

class Solution {
public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if (!root || root == p || root == q) {return root;}TreeNode *left = lowestCommonAncestor(root->left,p,q);TreeNode *right = lowestCommonAncestor(root->right,p,q);if (left && right) {return root;}if (left) {return left;}return right;}
};

        时间复杂度:O(n),n为节点个数

        空间复杂度:O(n)

类似的可以求解一下235. 二叉搜索树的最近公共祖先 - 力扣(LeetCode)

http://www.dtcms.com/wzjs/365016.html

相关文章:

  • 西安高端网站建设哪家好竞价专员是做什么的
  • ip地址进入网站怎么做的天津seo培训
  • 如何做凡客网站资源链接搜索引擎
  • 代做效果图网站网络销售公司
  • 淄博网站制作设计公司郑州seo外包费用
  • 江门网站建设费用链接
  • 石材石料网站搭建教程营销型网站是什么意思
  • 做响应式网站应该注意什么好看的seo网站
  • 网站备案过户 主体需要一致么经典seo伪原创
  • wordpress 回复下载插件沈阳seo关键词排名优化软件
  • 英语网站如何做社群网络营销的推广方法有哪些
  • 网站页数重庆高端网站seo
  • 个人做淘宝客网站有哪些西地那非片
  • 长沙注册公司核名网站网站信息
  • iview做的网站培训网站有哪些
  • 网站建设企业哪里好免费刷赞网站推广免费
  • 网站 极简主义手机自己怎么建电影网站
  • 为外国企业做中文网站建设西青seo
  • 怎么做网站的低价刷赞网站推广
  • 重庆微信网站制作公司兰州网络推广电话
  • 漳州最专业的网站建设公司搜索引擎排名大全
  • 网站开发技术的选择网络营销的重要性
  • 西安网站优化服务宁波seo网络推广定制
  • 房地产行业网站建设报价方案免费建网站的平台
  • 应该双网站百度识图扫一扫入口
  • 网站建设的部署网站的网络推广
  • 黄骅港汽车站客车时刻表百度云官网
  • 合肥学网站设计重庆网站搜索排名
  • 网站描述怎么修改吗站长工具端口
  • 中山小榄网站建设百度一下你就知道百度首页