Given the root of a binary tree, return the maximum path sum of any non-empty path.
A path is any sequence of nodes where each consecutive pair is connected by an edge; a node appears at most once and the path does not have to pass through the root. The path sum is the total of the node values along it. Every path has at least one node.
The tree is given in level-order (TreeNode with { val, left, right }, null for a missing child).
[1,2,3][-10,9,20,null,null,15,7][-3][2,-1][5][-2,-1][1,-2,-3,1,3,-2,null,-1]