首页 > 其他 > 详细

【LeetCode】124. Binary Tree Maximum Path Sum

时间:2018-04-14 15:57:17      阅读:192      评论:0      收藏:0      [点我收藏+]

Given a binary tree, find the maximum path sum.

For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path must contain at least one node and does not need to go through the root.

For example:
Given the below binary tree,

       1
      /      2   3

 

Return 6.

题解:

  感觉解题思路有点类似于动态规划,一个变量用于表示以此节点为根的最大路径和,另一个变量为全局变量,全局更新最大值

 1 class Solution {
 2 public:
 3     int maxPathSum(TreeNode* root) {
 4         if (!root)
 5             return 0;
 6         int res = INT_MIN;
 7         helper(root, res);
 8         return res;
 9     }
10     
11     int helper(TreeNode* root, int& res) {
12         if (!root)
13             return 0;
14         
15         int lmax = max(helper(root->left, res), 0);
16         int rmax = max(helper(root->right, res), 0);
17         res = max(lmax + rmax + root->val, res);
18         return max(lmax, rmax) + root->val;
19     }
20 };

 

【LeetCode】124. Binary Tree Maximum Path Sum

原文:https://www.cnblogs.com/Atanisi/p/8832131.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!