classSolution{int result;publicintmaxPathSum(TreeNode root){
result =Integer.MIN_VALUE;dfs(root);return result;}privateintdfs(TreeNode root){if(null== root)return0;int left =Math.max(0,dfs(root.left)), right =Math.max(0,dfs(root.right));
result =Math.max(result, left + right + root.val);return root.val +Math.max(left,right);}}