124. 二叉树中的最大路径和 --力扣 --JAVA

简介: 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。

 题目

二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。

路径和 是路径中各节点值的总和。

给你一个二叉树的根节点 root ,返回其 最大路径和

解题思路

    1. 对树进行递归;
    2. 左右子树加上当前节点与当前结果相比取最大值(从下往上归);
    3. 向上返回只能保留左右子树中的一个,否则会无法形成一条链。

    代码展示

    class Solution {
        private int ans = Integer.MIN_VALUE;
        public int maxPathSum(TreeNode root) {
            dfs(root);
            return ans;
        }
        private int dfs(TreeNode root){
            if(root == null){
                return 0;
            }
            int left = dfs(root.left);
            int right = dfs(root.right);
            ans = Math.max(ans,left + right + root.val);
            return Math.max(Math.max(left,right) + root.val, 0);    //当前最大值
        }
    }

    image.gif


    目录
    相关文章
    |
    2月前
    【LeetCode 35】112.路径总和
    【LeetCode 35】112.路径总和
    27 0
    |
    23天前
    |
    Java
    java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
    java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
    58 9
    |
    2月前
    【LeetCode 36】113.路径总和II
    【LeetCode 36】113.路径总和II
    29 0
    |
    3天前
    |
    Java
    java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
    java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
    57 34
    |
    22天前
    |
    Java Android开发
    Eclipse Java 构建路径
    Eclipse Java 构建路径
    27 3
    |
    2月前
    |
    IDE Java 编译器
    Java:如何确定编译和运行时类路径是否一致
    类路径(Classpath)是JVM用于查找类文件的路径列表,对编译和运行Java程序至关重要。编译时通过`javac -classpath`指定,运行时通过`java -classpath`指定。IDE如Eclipse和IntelliJ IDEA也提供界面管理类路径。确保编译和运行时类路径一致,特别是外部库和项目内部类的路径设置。
    142 5
    |
    2月前
    【LeetCode 31】104.二叉树的最大深度
    【LeetCode 31】104.二叉树的最大深度
    20 2
    |
    2月前
    【LeetCode 29】226.反转二叉树
    【LeetCode 29】226.反转二叉树
    18 2
    |
    2月前
    【LeetCode 28】102.二叉树的层序遍历
    【LeetCode 28】102.二叉树的层序遍历
    16 2
    |
    2月前
    |
    Java
    【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
    【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(二)
    30 1