题解 | #二叉树中的最大路径和#

二叉树中的最大路径和

http://www.nowcoder.com/practice/da785ea0f64b442488c125b441a4ba4a

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    int maxSum=Integer.MIN_VALUE;//初始化为系统最小
    //该函数的含义为返回以root为根节点且以root为起点的最大路径和大小
    public int process(TreeNode root){
        if(root==null)
            return 0;
        int leftData=Math.max(process(root.left),0);
        int rightData=Math.max(process(root.right),0);
        maxSum=Math.max(maxSum,root.val+leftData+rightData);
        return root.val+Math.max(leftData,rightData);
    }
    public int maxPathSum (TreeNode root) {
        // write code here
        process(root);
        return maxSum;
    }
}
全部评论

相关推荐

那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
05-09 14:45
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务