求树的最大路径和
来源:互联网 发布:花屋小三郎 知乎 编辑:程序博客网 时间:2024/05/20 06:30
Problem:Binary Tree Maximum Path Sum
Given a binary tree, find the maximum path sum.
The path may start and end at any node in the tree.
这里所说的路径和是指从任意结点开始到任意结点结束的结点值之和,而且要注意的是结点的值也可能为负数。
思路:用递归思想,并用一个全局变量保存最大路径和的值。分别求当前结点的左子树和右子树的最大路径和,返回通过当前结点的最大路径和。并将下列四个值最大值与当前最大路径和比较,保证最大路径和始终是最大值。
当前结点值
当前结点值+左子树的最大路径和
当前结点值+右子树最大路径和
当前结点值+左子树最大路径和+右子树最大路径和
注意:这里在每次求通过一个结点的最大路径和时,不断更新整个树的最大路径和。
class Solution {public: int res;//保存最大路径和 int maxPathSum(TreeNode* root) { res = -10000; maxPathSumRe(root); return res; } int maxPathSumRe(TreeNode* node) { if (node == NULL) return 0; int l = maxPathSumRe(node->left); int r = maxPathSumRe(node->right); int maxSub = (l > r) ? l : r; //sum用于保存通过当前结点的最大路径和 int sum = (node->val > maxSub + node->val) ? node->val : node->val + maxSub; res = res > sum ? res : sum; res = node->val + l + r > res ? node->val + l + r : res; return sum; } };
0 0
- 求树的最大路径和
- 二叉树系列---求二叉树的最大路径和
- 求普通二叉树的最长路径、求普通二叉树的路径最大和
- Java求二叉树的最大路径和
- 求矩阵的最大和路径问题
- 求二叉树中的最大路径和,也就是求节点和节点之间的路径上所有节点的最大值
- 树的最大路径和
- LeetCode之求二叉树最大路径和
- Binary Tree Maximum Path Sum 求二叉树的最大路径和
- 124 Binary Tree Maximum Path Sum 求二叉树的最大路径和
- 求矩阵的最大路径的问题
- 多条最短路径求个数,求路径上最大和,求最短路路径
- 求树的最大宽度和最大深度
- 求矩阵左上角到右下角所经过点的和的最大距离和路径
- 求二叉树最大路径和(Binary Tree Maximum Path Sum)
- 动态规划(三角形求路径最大和)
- 二叉树最大路径和
- 二叉树最大路径和
- splay专题复习——bzoj 3224 & 1862 & 1503 题解
- poj_2253 最短路floyd
- 黑马程序员——交通灯管理系统
- POJ-World Cup Noise 简单DP
- “结巴”分词:做最好的Python分词组件
- 求树的最大路径和
- xargs用法
- 关于NFC技术的问题汇总
- Linux Git commands
- PHP识别电脑还是手机访问网站
- Kleinrock和互联网的故事
- linux 下添加环境变量
- LinearLayout详解一:LinearLayout的简介
- ndk-stack需要log作为JNI输入来分析