使用Python找出给定节点二叉树最低公共祖先的程序
假设我们有一个二叉树,要求找出树中所有节点的最低公共祖先。二叉树中的最低公共祖先是节点x1,x2,x3,……,xn的最低祖先节点。一个特定的节点也可能是它本身的后代。我们必须找到该节点并将其作为输出返回。输入是树的根节点和我们要找到祖先的节点列表。
因此,如果输入是
和要找到祖先的节点列表是[6,8],则输出将为7。
输出为7,因为节点6和8均是7的后代节点。
为解决此问题,我们将按照以下步骤执行 –
- 定义一个函数fn(),这将接受节点。
- 如果节点类似于null,则
- 返回节点
- 否则当节点存在于节点列表中时,则
- 返回节点
- left:= fn(node的左子树),
-
right:= fn(node的右子树)
-
如果left和right不为null,则
- 返回节点
- 否则,
- 如果left或right不为null,则
-
返回节点
- 如果节点类似于null,则
-
nodes:=新列表
-
对于node_list中的每个elem,执行以下操作
- 将search_node(root,elem)插入到nodes的末尾
- nodes:=新节点集从nodes
-
返回fn(root)
让我们看以下实现,以获得更好的理解 –
更多Python相关文章,请阅读:Python 教程