All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0101_0200.s0124_binary_tree_maximum_path_sum.Solution Maven / Gradle / Ivy

package g0101_0200.s0124_binary_tree_maximum_path_sum;

import com_github_leetcode.TreeNode;

public class Solution {
    private int maxSum = Integer.MIN_VALUE;

    public int maxPathSum(TreeNode root) {
        findMaxPathSum(root);
        return maxSum;
    }

    public int findMaxPathSum(TreeNode root) {
        if (root == null) {
            return 0;
        }

        int leftSum = findMaxPathSum(root.left);
        int rightSum = findMaxPathSum(root.right);
        int totalSum = root.val + leftSum + rightSum;

        int maxValue = Math.max(leftSum + root.val, rightSum + root.val);
        maxValue = Math.max(maxValue, totalSum);
        maxValue = Math.max(maxValue, root.val);

        if (maxValue > maxSum) {
            maxSum = maxValue;
        }

        return Math.max((Math.max(leftSum, rightSum) + root.val), root.val);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy