在Python中查找n叉树的直径的程序
假设我们已经有了一个n叉树,并且需要确定树的直径。树的直径是树上任意两个叶子结点之间的最长路径。我们需要找出并返回表示树直径的整数值。
因此,如果输入如下:
则输出将为3。
这个n叉树的直径由边27->14、14->42和42->56或42->65(在图表中用红色线标记)组成。路径长度为3。
为了解决这个问题,我们需要执行以下步骤:
- ans := 1
- 定义一个函数 depth()。这个函数需要传递根结点
- 如果根结点为空,则返回0
- children := 包含值0, 0的新列表
- temp_children := 新列表
- 对于根节点的每个子节点,执行以下循环:
- 将 depth(child) 插入到 temp_children 列表的末尾
- 如果 temp_children 的大小 > 0,则
- children := temp_children
- ans := max(ans, sum(sort the list children [from index length of(children)-2 to end]) + 1)
- 返回 children + 1 的最大值
- depth(root)
- 返回(ans – 1)
更多Python相关文章,请阅读:Python 教程
例子(Python)
让我们看一下以下实现,以更好地理解。