码迷,mamicode.com
首页 > 其他好文 > 详细

Binary Tree Maximum Path Sum

时间:2016-07-09 16:20:54      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

最近忙着水论文,好久没刷题了,现在真是看到论文就烦啊,来刷刷题。

技术分享

 

返回最大值,这题需要注意的是,在递归的时候不能返回最大值,只能返回单向的值,最大值每次保留即可。

技术分享
int maxPathSum(TreeNode *root)
      {
          max_sum = INT_MIN;
          dfs(root);
          return max_sum;
      }
      int dfs1(const TreeNode *root)
      {
          if (root == nullptr)return 0;
          int l = dfs1(root->left);
          int r = dfs1(root->right);
          int sum = root->val;
          if (l > 0)sum += l;
          if (r > 0)sum += r;

          max_sum = max(max_sum, sum);
          //注意返回的是单向的值而不是最大值
          return max(l, r) > 0 ? max(l, r) + root->val : root->val;

      }
View Code

 

Binary Tree Maximum Path Sum

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5655939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!