leetcode【二叉树中的最大路径和】

简介: leetcode【二叉树中的最大路径和】

正文


简介【二叉树中的最大路径和】给定一个非空二叉树,返回其最大路径和。


题目描述#


给定一个非空二叉树,返回其最大路径和。

本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。


示例 1:

输入: [1,2,3]
       1
      / \
     2   3
输出: 6


示例 2:

输入: [-10,9,20,null,null,15,7]
   -10
   / \
  9  20
    /  \
   15   7
输出: 42


我的代码#


class Solution {
    volatile int max = Integer.MIN_VALUE;
    public int maxPathSum(TreeNode root) {
        maxPathSum2(root);
        return max;
    }
    private int maxPathSum2(TreeNode root) {
        if (null != root) {
            int val = root.val;
            int left = maxPathSum2(root.left);
            int right = maxPathSum2(root.right);
            if (left < 0) {
                left=0;
            }
            if (right < 0) {
                right=0;
            }
            if (val + left + right > max) {
                max = val + left + right;
            }
            return (left > right) ? left + val : right + val;
        } else {
            return 0;
        }
    }
}


算法#


10.jpg


后续#


这个编程题属于二叉树的范畴,感觉也是动态规划的问题,求解局部最优解以及全局最优解的问题。



相关文章
|
2月前
【LeetCode 35】112.路径总和
【LeetCode 35】112.路径总和
28 0
|
2月前
【LeetCode 36】113.路径总和II
【LeetCode 36】113.路径总和II
29 0
|
2月前
【LeetCode 31】104.二叉树的最大深度
【LeetCode 31】104.二叉树的最大深度
26 2
|
2月前
【LeetCode 29】226.反转二叉树
【LeetCode 29】226.反转二叉树
20 2
|
2月前
【LeetCode 43】236.二叉树的最近公共祖先
【LeetCode 43】236.二叉树的最近公共祖先
21 0
|
2月前
【LeetCode 38】617.合并二叉树
【LeetCode 38】617.合并二叉树
15 0
|
2月前
【LeetCode 37】106.从中序与后序遍历构造二叉树
【LeetCode 37】106.从中序与后序遍历构造二叉树
20 0
|
2月前
【LeetCode 34】257.二叉树的所有路径
【LeetCode 34】257.二叉树的所有路径
22 0
|
2月前
【LeetCode 32】111.二叉树的最小深度
【LeetCode 32】111.二叉树的最小深度
19 0
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行