Updating `node.val`

by the bigger one between `left`

and `right`

, and ignore them when none of them is positive.

```
class Solution(object):
def maxPathSum(self, root):
"""
:type root: TreeNode
:rtype: int
"""
def path(node):
if not node: return 0
left, right = max(path(node.left), 0), max(path(node.right), 0)
self.ans = max(self.ans, left + right + node.val)
node.val += max(left, right)
return node.val
self.ans = float('-inf')
path(root)
return self.ans if root else 0
```