Binary Tree Maximum Path Sum
Given a binary tree, find the maximum path sum.
The path may start and end at any node in the tree.
Find the maximum path from one point of the tree to another, and use the recursive method. ans are generated at the maximum of left and right subtree, root + left and right.
/*** Definition for binary tree * struct TreeNode {* int val; * TreeNode * left; * TreeNode * right; * TreeNode (int x): val (x ), left (NULL), right (NULL) {}*}; */class Solution {public: int ans; int maxPathSum (TreeNode * root) {ans = INT_MIN; travel (root); return ans;} int travel (TreeNode * root) {if (root = NULL) return 0; int sum = root-> val; int leftsum = travel (root-> left); int rightsum = tra Vel (root-> right); if (leftsum> 0) sum + = leftsum; if (rightsum> 0) sum + = rightsum; ans = max (ans, sum ); sum = max (leftsum, rightsum); return root-> val + (sum> 0? Sum: 0 );}};