LCA ing
转自:原地址
1. LCA转换到RMQ:
通过深度优先遍历得到:
数组E,保存遍历访问的每个节点号.
数组L:保存遍历访问的每个节点层(高度).
数组H:保存第一次访问某个节点的时候(即在E中的位置)
这样我们就把LCA问题转换成了RMQ,
比如查找节点9和节点12的最近共同父节点问题,
就变成了H[9]=10,H[12]=15,查找L数组中10到15中最小值位置.
2. RMQ转换到LCA
我们可以把最小值作为根,把数组左边的作为左孩子,数组右边的作为右孩子,以此递归.
就可以得到下面的树,就转换为了LCA问题