Skip to content

Latest commit

 

History

History
89 lines (69 loc) · 2.64 KB

牛客_0005_中等_二叉树根节点到叶子节点的所有路径和.md

File metadata and controls

89 lines (69 loc) · 2.64 KB

二叉树根节点到叶子节点的所有路径和

last modify

问题简述
给定二叉树,求所有路径和,路径定义如下:
假设某条路径的从根节点到叶节点的值为 1->2->3,则记该条路径表示的值为 123;
输入确保每个节点的值在 0~9 之间;

示例
    1
   2 3
结果:25(12+13=25)

二叉树根节点到叶子节点的所有路径和_牛客题霸_牛客网

思路:DFS
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:
        # write code here
        
        self.ret = 0
        
        def dfs(node: TreeNode, sum_):
            if not node:
                # self.ret += sum_  # 放在这里会导致“加两次”
                return
            
            sum_ = sum_ * 10 + node.val
            if not node.left and not node.right:
                self.ret += sum_
                return
            
            if node.left:
                dfs(node.left, sum_)
            if node.right:
                dfs(node.right, sum_)
        
        dfs(root, 0)
        return self.ret