找出二叉树上任意两个结点的最近共同父结点。
要求两节点的最近共同父节点(LCA,lowest common ancestor),可以采用树的后序遍历。如果这两个节点不在一条线上,则它们必定分别在所求节点A的左子树和右子树上,后序遍历到第一个满足这个条件的节点就是所要求的节点A。另外,当这两个节点在一条线上,所求节点A则是这两个节点中层次最低的节点的父节点。
本文介绍了一种求解二叉树中两个指定节点的最近公共祖先(LCA)的算法。该算法通过后序遍历的方式,寻找同时包含两个目标节点的子树,并最终确定最近的公共祖先节点。
找出二叉树上任意两个结点的最近共同父结点。
要求两节点的最近共同父节点(LCA,lowest common ancestor),可以采用树的后序遍历。如果这两个节点不在一条线上,则它们必定分别在所求节点A的左子树和右子树上,后序遍历到第一个满足这个条件的节点就是所要求的节点A。另外,当这两个节点在一条线上,所求节点A则是这两个节点中层次最低的节点的父节点。

被折叠的 条评论
为什么被折叠?