码迷,mamicode.com
首页 > 编程语言 > 详细

Java for LeetCode 124 Binary Tree Maximum Path Sum

时间:2015-05-26 18:40:02      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

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

Return 6.

解题思路:

DFS暴力枚举,注意,如果采用static 全局变量的话,在IDE里面是可以通过,但在OJ上无法测试通过,因此需要建立一个类来储存结果,JAVA实现如下:

public class Solution {
	static public int maxPathSum(TreeNode root) {
		Result result=new Result(Integer.MIN_VALUE);
		dfs(root,result);
		return result.val;
	}
	static int dfs(TreeNode root,Result result) {
		if (root == null)
			return 0;
		int left_sum = Math.max(0, dfs(root.left,result));
		int right_sum = Math.max(0, dfs(root.right,result));
		result.val = Math.max(result.val, left_sum + right_sum + root.val);
		return Math.max(left_sum, right_sum) + root.val;
	}
}
class Result{
	int val;
	Result(){
		this.val=Integer.MIN_VALUE;
	}
	Result(int val){
		this.val=val;
	}
}

 

Java for LeetCode 124 Binary Tree Maximum Path Sum

标签:

原文地址:http://www.cnblogs.com/tonyluis/p/4531152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!