题解 | #农场最大产奶牛群#
农场最大产奶牛群
https://www.nowcoder.com/practice/16d827f124e14e05b988f3002e7cd651
题目考察的知识点是:
本题主要考察二叉树知识。
题目解答方法的文字分析:
获取左右最大值,将最大值在相加,得到最后的结果。
本题解析所用的编程语言:
java语言。
完整且正确的编程代码:
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型 */ int max = 0; public int maxMilkSum (TreeNode root) { // write code here if (root == null) { return 0; } maxMilk(root, 0); return max; } private int maxMilk(TreeNode root, Integer sum) { if (root == null) { return 0; } int left = Math.max(maxMilk(root.left, sum), 0); int right = Math.max(maxMilk(root.right, sum), 0); int cursum = left + right + root.val; max = Math.max(max, cursum); return root.val + Math.max(left, right); } }