力扣-124.二叉树中的最大路径和
题目链接
124.二叉树中的最大路径和
class Solution {int res = Integer.MIN_VALUE;public int maxGain(TreeNode node) {if (node == null) return 0;int left = Math.max(maxGain(node.left), 0);int right = Math.max(maxGain(node.right), 0);res = Math.max(res, left + right + node.val);return Math.max(left, right) + node.val;}public int maxPathSum(TreeNode node) {maxGain(node);return res;}
}
小结:maxGain
函数返回包含该结点的最大单边路径和,若为负则舍弃该路径置为0
,经过任一结点的最大路径和等于该结点值加左右子树的最大单边路径和。