A **path** in a binary tree is a sequence of nodes where each pair of adjacent nodes has an edge. A node can only appear once in the path, and the path does not need to pass through the root.
The **path sum** of a path is the sum of the node's values in the path.
Given the `root` of a binary tree, return the maximum **path sum** of any non-empty path.
**Example 1:**
```
Input: root = [1,2,3]
Output: 6
Explanation: The optimal path is 2 → 1 → 3 with path sum = 2 + 1 + 3 = 6.
```
**Example 2:**
```
Input: root = [-10,9,20,null,null,15,7]
Output: 42
Explanation: The optimal path is 15 → 20 → 7 with path sum = 15 + 20 + 7 = 42.
```