首页 > 其他分享 >最近公共祖先

最近公共祖先

时间:2023-04-09 15:22:34浏览次数:30  
标签:两个 祖先 最近 公共 树上 节点

一、前言

在一棵树上,一个节点的祖先定义为从根节点到这个节点的父亲节点的链上的所有点。

两个节点的公共祖先为这两个节点对应的链重合部分上的所有点。

两个节点的最近公共祖先为这两个节点对应的链重合部分上的所有点中深度最大的那个

容易知道树上任意两个点一定有且仅有一个最近公共祖先。

它可以帮助我们解决很多树上问题,例如树上两个点之间的距离。

二、计算方法

1.暴力跳

要计算 x 和 y 的最近公共祖先,容易想到可以直接暴力跳:先 dfs ,记录所有点的深度,再将 x 、 y 向上跳到同样深度

标签:两个,祖先,最近,公共,树上,节点
From: https://www.cnblogs.com/qwq-qaq-tat/p/17300357.html

相关文章

  • Question1:如何在Git中撤销最近的commit并重新执行add操作?「有问必答」
    你好,我是悦创。这是有问必答系列,你可以把你的问题在文章下评论,无论什么问题,我都会为你解答。如果你想撤销最近的一次提交并将更改重新放回暂存区(stagingarea),可以使用如下命令:gitreset--softHEAD^这将撤销最近的一次提交,同时保留更改在暂存区。之后,你可以使用gitadd将你想要......
  • EasyCVR在公共资源交易中心监控视频汇聚项目中的场景应用方案
    一、背景分析2019年5月,国务院办公厅印发了《国务院办公厅转发国家发展改革委关于深化公共资源交易平台整合共享实施意见的通知》(国办函〔2019〕41号),明确深化公共资源平台整合共享,要求地方各级人民政府制度细化落实工作方案,实现公共资源交易平台纵向全面贯通、横向互联互通,打造全区......
  • 代码随想录Day22-Leetcode235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,4
    235.二叉搜索树的最近公共祖先题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/又玩了一天,手又生疏了好多;这道题看了题解,先用公共解法了,之前的题没刷,就给现在留坑了/***Definitionforabinarytreenode.*functionTree......
  • 树:剑指 Offer 68 - II. 二叉树的最近公共祖先
    题目描述:给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉树: root= ......
  • 树:剑指 Offer 68 - I. 二叉搜索树的最近公共祖先
    题目描述:给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root......
  • ThinkPHP 3.2公共类库、应用类库ThinkPHP/Library讲解
    一、ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。       公共类库公共类库通常是指ThinkPHP/Library目录下面的类库,例如:         Think目录:系统核心类库         Org目录:第......
  • 公共英语语法笔记 - 部分和结构
    十大词性:前六个是实词后四个是虚词名词:n.表示人,事物,地点,或抽象概念的名称代词:pron.代替名词的一种词,分为:人称代词,物主代词,反身代词,指示代词,不定代词,相互代词(例:eachother)形容词:adj.修饰名词,代词,表示人和物的性质,状态,特征副词:adv.修饰动词,形容词,副词,短语,句子动词:v.表示......
  • 最近一个月的生活
    报到入职,开始忙于工作。很多技术都了解过,因为JavaWeb开发就是这么些技术,熟悉和掌握这些技术还需要时间。看文档、写代码、开会、讲座、拓展培训都还不错,生活还好,比大学整体要多姿多彩吧!一个重要的不足之处是看书的时间确实很少,工作中没有时间去看书,只好趁周末可以多看几页......
  • 最近遇到的若干Web前端问题:disable和readonly,JqueryEasyUI,KindEditor
     最近项目中用到了JqueryEasyui和KindEditor等框架组件,问题真不少啊~ 一些看起来很简单理所当然的事情,竟然花费了不少时间,才解决好~  1.readonly和disable的区别 readonly:只读,不可编辑,提交表单时,值会提交到后端。 disable:禁止(包含了“只读”......
  • python机器学习案例系列教程——K最近邻算法(KNN)、kd树
    全栈工程师开发手册(作者:栾鹏)python数据挖掘系列教程K最近邻简介K最近邻属于一种估值或分类算法,他的解释很容易。我们假设一个人的优秀成为设定为1、2、3、4、5、6、7、8、9、10数值表示,其中10表示最优秀,1表示最不优秀。我们都知道近朱者赤,近墨者黑,我们想看一个人是什么样的,看......