该题为求多叉树的直径、第二直径的问题。
前几天在牛客巅峰赛上遇到了,赛后主讲人讲了一个通用的思路。对于此类问题,我们需要构建图来做深度优先搜索。

  1. 首先,根据父子关系及边权重构建无向图;
  2. 然后,随机找一顶点,利用深度优先搜索找到距离该点最远的顶点remote。
  3. 最后,从remote顶点开始深度优先搜索找到最长路径,该路径即为直径。