Binary Tree Maximum Path Sum - Problem

A path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. Note that 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.

Input & Output

Example 1 — Basic Tree with Positive Values
$ Input: root = [1,2,3]
Output: 6
💡 Note: The optimal path is 2 → 1 → 3 with sum = 2 + 1 + 3 = 6
Example 2 — Tree with Negative Values
$ Input: root = [-10,9,20,null,null,15,7]
Output: 42
💡 Note: The optimal path is 15 → 20 → 7 with sum = 15 + 20 + 7 = 42
Example 3 — Single Node
$ Input: root = [-3]
Output: -3
💡 Note: The tree has only one node, so the maximum path sum is -3

Constraints

  • The number of nodes in the tree is in the range [1, 3 × 104]
  • -1000 ≤ Node.val ≤ 1000

Visualization

Tap to expand
Binary Tree Maximum Path Sum123Maximum Path: 2 → 1 → 3Possible paths:• Single nodes: [1], [2], [3] → sums: 1, 2, 3• Two nodes: [2,1], [1,3] → sums: 3, 4• Three nodes: [2,1,3] → sum: 6 ✓Output: 6
Understanding the Visualization
1
Input Tree
Binary tree with node values (can be negative)
2
Find All Paths
Consider paths between any two nodes in the tree
3
Maximum Sum
Return the path with the highest sum
Key Takeaway
🎯 Key Insight: Use DFS to calculate maximum path through each node, tracking the global maximum
Asked in
Google 25 Amazon 18 Microsoft 15 Facebook 12
68.5K Views
High Frequency
~25 min Avg. Time
2.8K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen