如何找到连接二叉树中两片叶子的最长路径?

时间:2018-06-17 16:44:47

标签: algorithm binary-tree graph-algorithm

如何找到通过二叉树中的根连接两个叶子的最长路径的长度?

  • 该函数必须是递归的,并且必须返回该函数的长度 最长的路径。
  • 我只需要伪代码

This image explain better: the longest path is from 7 to 13 through the root. In this case the length is 7

我刚刚读到我正在寻找的内容被称为树的直径

1 个答案:

答案 0 :(得分:0)

注意,二叉树的直径不一定等于通过根的最长路径的长度。考虑一个完整的二叉树,它通过在根上添加一个额外的节点来修改 - 然后最好的路径根本不会通过根。

如果必须通过根,那么最长的路径是到达左右子树中最深节点的路径。因此,考虑编写一个辅助函数,找到子树中最深的节点,看看是否可以将其作为起点。