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