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.
Given the root of a binary tree, return the **maximum path sum** (the path can start and end at any node).