题解 | #牛奶产量总和#

牛奶产量总和

https://www.nowcoder.com/practice/0932ea3bd8514c79849cc658108053bb

  • 题目考察的知识点 : 二叉树的遍历,递归
  • 题目解答方法的文字分析:
  1. 首先检查当前节点node是否为空。如果为空,则返回。否则,我们计算从根节点到当前节点的路径上的数字之和,并将其保存在变量path_sum中。如果当前节点是叶子节点,则将其产奶量加入总和中。
  2. 最后递归地遍历当前节点的左右子树,并将path_sum作为参数传递给下一层递归
  • 本题解析所用的编程语言:Python
  • 完整且正确的编程代码

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型
#
class Solution:
    def sumNumbers(self, root: TreeNode) -> int:
        if not root:
            return 0
        self.sum = 0
        self.dfs(root, 0)
        return self.sum

    def dfs(self, node: TreeNode, path_sum: int):
        # 如果当前节点为空,则返回
        if not node:
            return
        # 计算从根节点到当前节点的路径上的数字之和
        path_sum = path_sum * 10 + node.val
        # 如果当前节点为叶子节点,则将其产奶量加入总和中
        if not node.left and not node.right:
            self.sum += path_sum
            return
        # 否则,继续遍历左右子树
        self.dfs(node.left, path_sum)
        self.dfs(node.right, path_sum)
牛客高频top202题解系列 文章被收录于专栏

记录刷牛客高频202题的解法思路

全部评论

相关推荐

牛马人的牛马人生:一开始看成了网吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务