124 Binary Tree Maximum Path Sum 求二叉树的最大路径和
来源:互联网 发布:淘宝上有没有猛将气 编辑:程序博客网 时间:2024/05/16 00:30
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加起来了…因为只是一条路…
代码如下:
/** * 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 maxVal = INT_MIN; int maxPathSum(TreeNode* root) { if (root == NULL) return 0; maxSum(root); return maxVal; } /*递归函数*/ int maxSum(TreeNode *root) { if (root == NULL) return 0; /*求以root为根的当前子树的最大路径和*/ int curVal = root->val; int lmaxSum = maxSum(root->left), rmaxSum = maxSum(root->right); if (lmaxSum > 0) curVal += lmaxSum; if (rmaxSum > 0) curVal += rmaxSum; if (curVal > maxVal) maxVal = curVal; /*返回以当前root为根的子树的最大路径和*/ return max(root->val, max(root->val + lmaxSum, root->val + rmaxSum)); } };
阅读全文
0 0
- 124 Binary Tree Maximum Path Sum 求二叉树的最大路径和
- Binary Tree Maximum Path Sum 求二叉树的最大路径和
- Binary Tree Maximum Path Sum 二叉树最大路径和
- 求二叉树最大路径和(Binary Tree Maximum Path Sum)
- 树的最大路径和 Binary Tree Maximum Path Sum
- LeetCode(Binary Tree Maximum Path Sum) 在二叉树中找出一条和最大的路径
- Binary Tree Maximum Path Sum 二叉树中任意路径的最大和
- Binary Tree Maximum Path Sum 二叉树的最大路径和
- Leetcode 124 Binary Tree Maximum Path Sum 二叉树最大路径和
- 124. Binary Tree Maximum Path Sum 二叉树上的最大路径和
- Binary Tree Maximum Path Sum 二叉树最大路径和 @LeetCode
- [LintCode] Binary Tree Maximum Path Sum (二叉树中的最大路径和)
- LeetCode 124. Binary Tree Maximum Path Sum(二叉树最大路径和)
- lintcode binary-tree-maximum-path-sum 二叉树中的最大路径和
- 94.Binary Tree Maximum Path Sum-二叉树中的最大路径和(中等题)
- 【二叉树】最大路径和【124. Binary Tree Maximum Path Sum】
- 【LeetCode】Binary Tree Maximum Path Sum二叉树中的最大路径和
- JavaShowAlgorithm-Binary Tree Maximum Path Sum 二叉树最大路径和
- oracle查看当前用户下所有表
- 变量提升
- 如何使用阿里云虚拟主机搭建博客(四)终结篇
- && || 的短路证明
- C#编程使用Managed Wifi API连接无线SSID
- 124 Binary Tree Maximum Path Sum 求二叉树的最大路径和
- oracle DG模式搭建详解
- 误入前端三年,一个文科生的独白(终结篇)
- 内存控制器简介
- 《Java核心技术 卷1 基础知识(原书第9版)》(完整中文版).pdf
- Oil Deposits
- Dubbo--
- mysql批量插入数据
- ng-model与ng-value的区别