Leetcode052--二叉树路径最大和

Posted 劲火星空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode052--二叉树路径最大和相关的知识,希望对你有一定的参考价值。

一、原题


Given a binary tree, find the maximum path sum.

The path may start and end at any node in the tree.

For example:
Given the below binary tree,

       1
      / \\
     2   3


Return6.




二、中文



找到二叉树中任意路径的的和的最大值



三、举例



比如上的的二叉树,其最大值就是123的和也就是6



四、思路



从一个结点开始,分别找到它的两条子路径的的最大的和,对每个子结点来说,也是这样,这就形成的递归



五、程序


/**
 * Definition for binary tree
 * public class TreeNode 
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x)  val = x; 
 * 
 */
public class Solution 
    int max;
    public int maxPathSum(TreeNode root) 
        max = Integer.MIN_VALUE;
        maxPathDown(root);
        return max;    
    
    public int maxPathDown(TreeNode node)
        if(node == null)
            return 0;
        
        //选出左边和右边的最大的值,然后进行相加
        int left = Math.max(0, maxPathDown(node.left));
        int right = Math.max(0, maxPathDown(node.right));
        max = Math.max(max, left + right + node.val);
        
        //得到该结点和左边或者右边比较大那个的和
        return Math.max(left, right) + node.val;
    


以上是关于Leetcode052--二叉树路径最大和的主要内容,如果未能解决你的问题,请参考以下文章

微软面试题: LeetCode 543. 二叉树的直径出现次数:3

LeetCode 124. 二叉树中的最大路径和 | Python

LeetCode Java刷题笔记— 543. 二叉树的直径

LeetCode Java刷题笔记—543. 二叉树的直径

Leetcode 124.二叉树中的最大路径和

二叉树中的最大和路径