博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】Binary Tree Maximum Path Sum
阅读量:5236 次
发布时间:2019-06-14

本文共 1074 字,大约阅读时间需要 3 分钟。

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.

For example:

Given the below binary tree,

1      / \     2   3

Return 6.

 
用递归确定每一个节点作为root时,从root出发的最长的路径
在每一次递归中计算maxPath
 
1 /** 2  * Definition for binary tree 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 class Solution {11 public:12     int maxSum=INT_MIN;13     int maxPathSum(TreeNode *root) {14        15         DFS(root);16         return maxSum;17     }18    19     int DFS(TreeNode *root)20     {21         if(root==NULL)22         {23             return 0;24         }25        26         int left=DFS(root->left);27         int right=DFS(root->right);28        29         int sum=root->val;30         if(left>0) sum+=left;31         if(right>0) sum+=right;32         if(maxSum
0||right>0)?root->val+max(left,right):root->val;35 }36 };

 

转载于:https://www.cnblogs.com/reachteam/p/4199301.html

你可能感兴趣的文章
WSDL 详解
查看>>
[转]ASP数组全集,多维数组和一维数组
查看>>
C# winform DataGridView 常见属性
查看>>
逻辑运算和while循环.
查看>>
Nhiberate (一)
查看>>
c#后台计算2个日期之间的天数差
查看>>
安卓开发中遇到的小问题
查看>>
ARTS打卡第3周
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
svn客户端清空账号信息的两种方法
查看>>
springboot添加servlet的两种方法
查看>>
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>