树的最长路径

图9-14中,对于每个节点i,都计算 d(u) + d(v) + 2。

树的最长路径不一定经过整个树的根节点,但必然经过某个子树的根节点。所以求所有节点的 d(u) + d(v) + 2的最大值可以得到树的最长路径。

如果节点只有一个子树u,可以设另一个子树d(v) = -1

如果节点是叶子节点,没有子树,设d(u) = d(v) = -1

 

不用动态规划的解法和最后一个问题没有研究。

 

posted @ 2016-09-13 14:24  PatrickZhou  阅读(921)  评论(0编辑  收藏  举报