/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
import java.util.*;
class Solution {
int max=Integer.MIN_VALUE;
public int maxPathSum(TreeNode root) {
if(root==null) return 0;
dfs(root);
return max;
}
public 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));//计算右孩子贡献值
max=Math.max(max,root.val+LeftMax+RightMax);//计算最大路径和,每次求得的路径和与已有最大值对比
return root.val+Math.max(LeftMax,RightMax);//返回该节点的贡献值
}
}
二叉树最大路径和
最新推荐文章于 2024-07-09 13:22:20 发布