二叉树的相关算法
LCA (Lowest Common Ancestor)
对于一棵树,常做一种寻找公共祖先的 LCA 操作,用来寻找两个节点的最近公共祖先,这里有好多种算法。
算法 1:自上而下的递归搜索
自上而下遍历,递归寻找祖先的方式。
算法 2:基于向量表示
基于 STL 中的 vector 来存储树,并基于此实现的算法,更加简单而且快速。
基本思路是维护一个记录每个节点深度的数组,先将两个节点的深度调整到一致,再一个一个向上走寻找祖先。
同时,可以使用 vector 结构存储子树关系,用一个正常数组存储父节点关系,这样在保证空间利用的基础上大大提升了可操作性。

链接到
- 上一个知识点:6.6 二叉树的遍历
- 下一个知识点:6.8 线索二叉树