Binary Tree Maximum Path Sum
Question from LeetCode https://leetcode.com/problems/binary-tree-maximum-path-sum/
Binary Tree Maximum Path SumTotal Accepted: 37936 Total Submissions: 178064My SubmissionsQuestionSolution
Given a binary tree, find the maximum path sum.
The path may start and end at any node in the tree.
For example:
Given the below binary tree,
1 / \ 2 3
Return6
.
Show Tags Have you met this question in a real interview?
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int maxroute(TreeNode* root) { if(root==NULL) return 0; int left=maxroute(root->left); int right=maxroute(root->right); int tmp=left>right?left:right; res=(root->val)>res?root->val:res; if(tmp>left+right&&root->val+tmp>res)res=root->val+tmp;else if(root->val+left+right>res) res=root->val+left+right;return (tmp>0?root->val+tmp:root->val); } int maxPathSum(TreeNode* root) { if (root==NULL) return 0; if(root->left==NULL&&root->right==NULL) return root->val; res=root->val; int cc= maxroute( root); return res; } int res;};