这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » binary-tree-maximum-path-sum

共2条 1/1 1 跳转至

binary-tree-maximum-path-sum

高工
2018-01-26 13:06:51     打赏

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.


思路:

左子树延伸下去的路径

右子树眼神下去的路径

通过根节点的路径

注意返回这和最大值的关系;


[cpp] view plain copy
  1. class Solution  

  2. {  

  3.     int help(TreeNode* node, int& maxVal)  

  4.     {  

  5.         if (!node)  

  6.         {  

  7.             return 0;  

  8.         }  

  9.   

  10.         int v1 = help(node->left, maxVal);  

  11.         int v2 = help(node->right, maxVal);  

  12.         int v = max(max(v1 + node->val, v2 + node->val), max(v1 + v2 + node->val, node->val));  

  13.   

  14.         maxVal = v>maxVal ? v : maxVal;  

  15.   

  16.         return max(max(v1 + node->val, v2 + node->val), node->val);//返回链接父节点时的最大值  

  17.     }  

  18.   

  19.     int maxPathSum(TreeNode* root)  

  20.     {  

  21.         int maxVal = INI_MIN;  

  22.         help(root, maxVal);  

  23.   

  24.         return maxVal;  

  25.     }  

  26. };  




管理员
2018-01-29 09:52:39     打赏
2楼

谢谢楼主分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]