Hard-题目32:124. Binary Tree Maximum Path Sum

转载 2016年05月31日 23:43:39

题目原文:
Given a binary tree, find the maximum path sum.

For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path does not need to go through the root.

For example:
Given the below binary tree,

   1
  / \
 2   3

Return 6.
题目大意:
给出一棵二叉树,求出和最大的一条路径。
题目分析:
递归求出每棵子树的最大和,然后分为三种情况:最大和路径在左子树,最大和路径在右子树,最大和路径在根节点,据此更新所有递归过程的最大值即可。
源码:(language:java)

public class Solution {
    public int max = Integer.MIN_VALUE;
    public int maxPathSum(TreeNode root) {
        rec(root);
        return max;
    }

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

        int leftSubtreeMaxSum = rec(root.left);     // 左子树的最大和
        int rightSubtreeMaxSum = rec(root.right);       // 右子树的最大和
        int arch = leftSubtreeMaxSum + root.val + rightSubtreeMaxSum;       
        int maxPathAcrossRootToParent = Math.max(root.val, Math.max(leftSubtreeMaxSum, rightSubtreeMaxSum)+root.val);
        max = Math.max(max, Math.max(arch, maxPathAcrossRootToParent));

        return maxPathAcrossRootToParent;
    }
}

成绩:
2ms,23.37%,2ms,76.33%
cmershen的碎碎念:
算法实现起来很简单,但有点不易想到。本题还是二叉树递归性质的一种灵活应用,且感觉很贴近面试题。

相关文章推荐

Leetcode 124. Binary Tree Maximum Path Sum[hard]

题目: Given a binary tree, find the maximum path sum.For this problem, a path is defined as any seque...

LeetCode(124) Binary Tree Maximum Path Sum

题目如下: Given a binary tree, find the maximum path sum. The path may start and end at any node in the ...

Leetcode 124 Binary Tree Maximum Path Sum 二叉树最大路径和

给出一棵二叉树,计算其最大路径和。路径的起止结点必须位于树内。

leetcode-124:Binary Tree Maximum Path Sum(Java)

Binary Tree Maximum Path Sum Given a binary tree, find the maximum path sum. The path may st...

leetcode解题之124. Binary Tree Maximum Path Sum Java版 (二叉树的最大路径和)

124. Binary Tree Maximum Path Sum ,leetcode解题之124. Binary Tree Maximum Path Sum Java版 (二叉树的最大路径和)

[leetcode]124. Binary Tree Maximum Path Sum@Java解题报告

https://leetcode.com/problems/binary-tree-maximum-path-sum/discuss/ Given a binary tree, ...

Leetcode #124 Binary Tree Maximum Path Sum

Binary Tree Maximum Path Sum题目描述 给出一颗二叉树,每个树节点有一个整数权值。 现在要求从树上找出一条路径,使得权值之和最大,问这个最大权值之和是多少。算法分析 一...

[leetcode] 124. Binary Tree Maximum Path Sum

题目: Given a binary tree, find the maximum path sum.The path may start and end at any node in the tr...

[LeetCode]*124.Binary Tree Maximum Path Sum

【题目】 Given a binary tree, find the maximum path sum. The path may start and end at any node in th...

LeetCode: Binary Tree Maximum Path Sum [124]

【题目】 Given a binary tree, find the maximum path sum. The path may start and end at any node in the...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)