# [[binary-tree|Binary Tree]] Maximum Path Sum https://leetcode.com/problems/binary-tree-maximum-path-sum/ Utilizes [[postorder]] traversal (or [[dfs|DFS]]). ```python maxPath = -float("inf") def gainFromSubtree(node): nonlocal maxPath if not node: return 0 gainFromLeft = max(gainFromSubtree(node.left), 0) gainFromRight = max(gainFromSubtree(node.right), 0) maxPath = max(maxPath, gainFromLeft + gainFromRight + node.val) return max(gainFromLeft + node.val, gainFromRight + node.val) gainFromSubtree(root) return maxPath ```