Maximum Path Sum[Hard]

Maximum Path Sum[Hard]_第1张图片


Maximum Path Sum[Hard]_第2张图片


Maximum Path Sum[Hard]_第3张图片

这题水超神,而且似乎只有这么一个解法。

最大Max path sum: 也许是这样的:

这里就有一个很confuse的地方: 假设left subtree我们求了一个max path sum,我们为什么return Max.max(left, right)+root.val 而不是return max呢? 因为! 我们要继续尝试能不能有更大的sum的必须是能够跟root连城线的。如果下图2的话,局部就完事了,连不了root. 我们用max value保持所有见过最大的,但是同时又看看和上一层连成线的话能不能更大!


Maximum Path Sum[Hard]_第4张图片

也许不会经过最顶上的root,在left subtree里就完事了。

Maximum Path Sum[Hard]_第5张图片

你可能感兴趣的:(Maximum Path Sum[Hard])