LeetCode-124-二叉树中的最大路径和
思路
参考「手画图解」别纠结递归的细节 | 124.二叉树中的最大路径和 - 二叉树中的最大路径和 - 力扣(LeetCode) (leetcode-cn.com)
代码
class Solution {
int res = Integer.MIN_VALUE;
public int maxPathSum(TreeNode root) {
if(root==null)return 0;
dfs(root);
return res;
}
int dfs(TreeNode root){
if(root==null)return 0;
int leftMax=Math.max(0,dfs(root.left));//计算左子树
int rightMax=Math.max(0,dfs(root.right));//计算右子树
res=Math.max(res,root.val+leftMax+rightMax);//更新以当前节点为根节点的最大值
return root.val+Math.max(leftMax,rightMax);//返回以当前节点为起点的路径最大值
}
}