标签:leetcode
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.
原题链接:https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/
题目:给定一二叉树,求出最大路径和。
分析:分别求出左右子树的最大路径和,同根节点的值相加。
int max = 0;
public int maxPathSum(TreeNode root) {
max = (root == null) ? 0 : root.val;
max(root);
return max;
}
public int max(TreeNode node) {
if (node == null)
return 0;
int left = Math.max(0, max(node.left));
int right = Math.max(0, max(node.right));
max = Math.max(node.val + left + right, max);
return node.val + Math.max(left, right);
}
// Definition for binary tree
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}LeetCode——Binary Tree Maximum Path Sum
标签:leetcode
原文地址:http://blog.csdn.net/laozhaokun/article/details/39268865