码迷,mamicode.com
首页 > 其他好文 > 详细

LCA —— 最近公共祖先

时间:2020-02-04 00:26:56      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:middle   span   比较   ali   family   定义   lca   roo   最大   

定义

  给定一棵有根树,若结点 z 既是结点 x 的祖先,也是结点 y 的祖先,则称 z 是x,y的公共祖先。

  在 x,y 的所有公共祖先中,深度最大的一个称为 x,y 的最近公共祖先,记为LCA(x,y)。

 

技术图片

    LCA(4 , 7) = 2,LCA(6,7) = 5

实现

暴力大法好

  若求LCA(4 , 7),分别求 4 和 7 到根节点的路径。

  4 -> root 的路径为:4 -> 2 -> 1。

  7 -> root 的路径为:7 -> 5 -> 2 -> 1。

  那么在两个路径中共有的第一个点即为答案。

  所以LCA(4 , 7) = 2。

  暴力大法比较简单也不怎么常用,不过多介绍。

Tarjan

 

ST

 

LCA —— 最近公共祖先

标签:middle   span   比较   ali   family   定义   lca   roo   最大   

原文地址:https://www.cnblogs.com/VividBinGo/p/12258091.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!