leetcode 124 二叉树中的最大路径和

简介

理解题目很重要
注意,不能走进一个分支又掉头回来走另一个分支,路径会重叠,不符合定义。

code

class Solution {
    public int maxValue = Integer.MIN_VALUE;
    public int maxPath(TreeNode root) {
        if(root == null) return 0;
        int leftValue = 0;
        int rightValue = 0;
        if(root.left != null) leftValue = Math.max(maxPath(root.left), 0);
        if(root.right != null) rightValue = Math.max(maxPath(root.right), 0);

        int pathValue = leftValue + rightValue + root.val;
        if(maxValue < pathValue) maxValue = pathValue;
        return root.val + Math.max(rightValue, leftValue); // 路径值 单边传递.
    }
    public int maxPathSum(TreeNode root){
        maxPath(root);
        return maxValue;
    }
}
上一篇:浅谈@GetMapping、@PostMapping和@RequestMapping注解的区别和使用


下一篇:@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping、@RequestMapping详解