题解 | #农场最大产奶牛群#
农场最大产奶牛群
https://www.nowcoder.com/practice/16d827f124e14e05b988f3002e7cd651
- 题目考察的知识点 : 二叉树的遍历,递归
- 题目解答方法的文字分析:
- 初始化结果值res为0对每个节点进行深度优先遍历,并计算从该节点出发能够收获到的最大产奶量。对于每个节点node,计算从左右子节点出发能够收获到的最大产奶量left和right,然后将其加上node的产奶量得到当前节点的最大产奶量value
- 由于不能回头,所以在更新结果值res的时候需要加上left和right。最后返回最大产奶量即可。
- 本题解析所用的编程语言:Python
- 完整且正确的编程代码
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @return int整型 # class Solution: def __init__(self): self.res = 0 def maxMilkSum(self, root: TreeNode) -> int: if not root: return 0 self.dfs(root) return self.res def dfs(self, node: TreeNode) -> int: if not node: return 0 left = self.dfs(node.left) right = self.dfs(node.right) self.res = max(self.res, left + right + node.val) return max(left, right) + node.val
牛客高频top202题解系列 文章被收录于专栏
记录刷牛客高频202题的解法思路