zoukankan      html  css  js  c++  java
  • LeetCode(124) Binary Tree Maximum Path Sum

    题目

    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 does not need to go through the root.

    For example:
    Given the below binary tree,

           1
          / 
         2   3
    

     

    Return 6.

    分析

    给定一颗二叉树,求其最大路径和。对于二叉树,算法大多可以选择递归解决,此题也不例外。
    如果只是一个节点,那么当然就是这个节点的值了.

    如果这个作为root,那么最长路应该就是..

    F(left) + F(right) + val...当然如果left,或者right<0就不用加了的= =

    从下往上递归遍历...

    如果不这个不是root,那么就不能把left和right加起来了...因为只是一条路...


    AC代码

     1 /**
     2  * Definition for a binary tree node.
     3  * struct TreeNode {
     4  *     int val;
     5  *     TreeNode *left;
     6  *     TreeNode *right;
     7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     8  * };
     9  */
    10 
    11 class Solution {
    12 public:
    13     int maxVal = INT_MIN;
    14     int maxPathSum(TreeNode* root) {
    15         if (root == NULL)
    16             return 0;
    17 
    18         maxSum(root);
    19         return maxVal;
    20     }
    21 
    22     /*递归函数*/
    23     int maxSum(TreeNode *root)
    24     {
    25         if (root == NULL)
    26             return 0;
    27 
    28         /*求以root为根的当前子树的最大路径和*/
    29         int curVal = root->val;
    30         int lmaxSum = maxSum(root->left), rmaxSum = maxSum(root->right);
    31         if (lmaxSum > 0)
    32             curVal += lmaxSum;
    33         if (rmaxSum > 0)
    34             curVal += rmaxSum;
    35 
    36         if (curVal > maxVal)
    37             maxVal = curVal;
    38 
    39         /*返回以当前root为根的子树的最大路径和*/
    40         return max(root->val, max(root->val + lmaxSum, root->val + rmaxSum));
    41     }
    42 };


  • 相关阅读:
    下载并使用ASP.NET MVC v1.0 Futures
    关于DataGridView的数据源两个值得注意的小问题
    C++网络编程(二)客户端服务器程序
    C++多态、继承的简单分析
    XML文件解析器TXml
    数组
    CTS类型系统
    光阴不会虚度
    软件的大规模生产
    微创新和山寨的关系
  • 原文地址:https://www.cnblogs.com/shine-yr/p/5214701.html
Copyright © 2011-2022 走看看