# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def maxPathSum(self, root: Optional[TreeNode]) -> int: def dfs(root: Optional[TreeNode]) -> int: if root is None: return 0 left = max(0, dfs(root.left)) right = max(0, dfs(root.right)) nonlocal ans ans = max(ans, root.val + left + right) return root.val + max(left, right) ans = -inf dfs(root) return ans