智乃学习了LCA,给定一颗有根树,对于树上的任意一点x来说,树上从根节点到x节点所构成简单路径上所有的节点均为x的祖先(包括x节点本身),那么对于树上任意两点x,y,如果z同时是x和y的祖先,则称z为x和y的公共祖先, x和y的最近公共祖先指所有x和y的公共祖先中深度最高的点,记为lca(x,y), 如果树结构确定,并且x和y的值给定,那么lca(x,y)的值将只与根节点有关, 所以
智乃学习了LCA,给定一颗有根树,对于树上的任意一点x来说,树上从根节点到x节点所构成简单路径上所有的节点均为x的祖先(包括x节点本身)。那么对于树上任意两点x,y,如果z同时是x和y的祖先,则称z为x和y的公共祖先。 x和y的最近公共祖先指所有x和y的公共祖先中深度最高的点,记为lca(x,y)。 如果树结构确定,并且x和y的值给定,那么lca(x,y)的值将只与根节点有关。 所以就可以定义无根树的lca(root,x,y)表示求以root为根时,x和y的最近公共祖先。 请你编写程序,计算在无根树结构给定情况下的lca(root,x,y)。
(图片来源网络,侵删)